2011-04-21 5 views
5

현재 사용자가 현재 데이터베이스에서 CREATE TABLE 권한을 가지고 있는지 프로그래밍 방식으로 감지 할 수 있습니까?CREATE TABLE 권한이 있는지 어떻게 알 수 있습니까?

일부 처리 시간이 길어지고 결과를 저장할 데이터베이스 테이블을 만드는 도구를 작성하고 있습니다. 처리가 완료 될 때까지만 테이블을 만들고 싶습니다. 그러나 사용자가 테이블을 만들 수 없으면 처리 시간을 소비하지 않습니다. 권한 문제를 감지하고 빨리 실패하고 싶습니다.

이것은 C# 응용 프로그램에서 나올 것이며, SQL-DMO 및 SMO를 배제하는 특수 라이브러리가 설치된다고 가정 할 수 없습니다. T-SQL 쿼리/스크립트를 사용하여 사용 권한을 확인하는 쉬운 방법이 있다면 이상적입니다.

답변

9

왜 테이블을 먼저 만들지 않고 실패 할 경우 더 이상 가지 않습니까? 여기

SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE TABLE'); 

상세 정보 :

http://msdn.microsoft.com/en-us/library/ms189802.aspx

+0

+1,이 권한 기능의 사용보다 더 방어 할 솔루션입니다 말했다

, 당신은 또한 다음과 같은 기능 HAS_PERMS_BY_NAME을 사용할 수 있습니다. –

관련 문제