다음을 통해 공유


sp_helprotect(Transact-SQL)

적용 대상: SQL Server

현재 데이터베이스에서 개체 또는 문 권한에 대한 사용자 권한에 대한 정보인 보고서를 반환합니다.

Important

sp_helprotect 는 SQL Server 2005(9.x) 이상 버전에서 도입된 보안 개체에 대한 정보를 반환하지 않습니다. 대신 sys.database_permissions 사용하여 sys.fn_builtin_permissions.

고정 서버 역할 또는 고정 데이터베이스 역할에 항상 할당되는 사용 권한은 나열하지 않습니다. 역할의 멤버 자격에 따라 권한을 받는 로그인 또는 사용자를 포함하지 않습니다.

Transact-SQL 구문 표기 규칙

구문

sp_helprotect
    [ [ @name = ] N'name' ]
    [ , [ @username = ] N'username' ]
    [ , [ @grantorname = ] N'grantorname' ]
    [ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]

인수

[ @name = ] N'name'

현재 데이터베이스에 있는 개체의 이름 또는 보고할 수 있는 권한인 문입니다. @name 모든 개체 및 문 권한을 반환하는 기본값NULL인 nvarchar(776)입니다. 값이 개체(테이블, 뷰, 저장 프로시저 또는 확장 저장 프로시저)인 경우 현재 데이터베이스에서 유효한 개체여야 합니다. 개체 이름은 양식 <owner>.<object>에 소유자 한정자를 포함할 수 있습니다.

@name 문인 경우 문이 될 CREATE 수 있습니다.

[ @username = ] N'username'

사용 권한이 반환되는 보안 주체의 이름입니다. @username 현재 데이터베이스의 NULL모든 보안 주체를 반환하는 기본값인 sysname입니다. @username 현재 데이터베이스에 있어야 합니다.

[ @grantorname = ] N'grantorname'

사용 권한을 부여한 보안 주체의 이름입니다. @grantorname sysname이며 기본값은 데이터베이스의 NULL보안 주체가 부여한 권한에 대한 모든 정보를 반환합니다.

[ @permissionarea = ] 'permissionarea'

개체 사용 권한(문자열), 문 사용 권한(문자 문자열o) 또는 둘 다o s()를 표시할지 여부를 나타내는 문자열s입니다. @permissionarea 기본값o s인 varchar(10)입니다. @permissionarea 쉼표 또는 s공백을 o 사용하거나 사용하지 않고 조합할 수 o 있습니다s.

반환 코드 값

0(성공) 또는 1(실패).

결과 집합

열 이름 데이터 형식 설명
Owner sysname 개체 소유자의 이름입니다.
Object sysname 개체의 이름입니다.
Grantee sysname 사용 권한이 부여된 보안 주체의 이름입니다.
Grantor sysname 지정한 피부여자에게 사용 권한을 부여한 보안 주체의 이름입니다.
ProtectType nvarchar(10) 보호 유형 이름:

GRANT REVOKE
Action nvarchar(60) 사용 권한의 이름입니다. 유효한 사용 권한 문은 개체의 유형에 따라 달라집니다.
Column sysname 사용 권한 유형:

All = 사용 권한은 개체의 모든 현재 열을 포함합니다.
New = 사용 권한은 나중에 개체에 대해 변경될 수 있는 모든 새 열을 포함합니다(문을 사용하여 ALTER ).
All+New = 조합 및 All New.

사용 권한 유형이 열에 적용되지 않는 경우 기간을 반환합니다.

설명

다음 절차의 모든 매개 변수는 선택 사항입니다. 매개 변수 sp_helprotect 없이 실행되는 경우 현재 데이터베이스에서 부여되거나 거부된 모든 사용 권한을 표시합니다.

일부 매개 변수가 지정되지 않은 경우 명명된 매개 변수를 사용하여 특정 매개 변수를 식별하거나 NULL 자리 표시자로 지정합니다. 예를 들어 부여자 데이터베이스 소유자()dbo에 대한 모든 권한을 보고하려면 다음 스크립트를 실행합니다.

EXEC sp_helprotect NULL, NULL, dbo;

또는

EXEC sp_helprotect @grantorname = 'dbo';

출력 보고서는 사용 권한 범주, 소유자, 개체, 피부여자, 피부여자, 보호 유형 범주, 보호 유형, 작업 및 열 순차 ID별로 정렬됩니다.

사용 권한

public 역할의 멤버 자격이 필요합니다.

반환되는 정보에는 메타데이터에 대한 액세스 제한이 적용됩니다. 보안 주체에 권한이 없는 엔터티는 표시되지 않습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

예제

A. 테이블에 대한 사용 권한 나열

다음 예에서는 titles 테이블에 대한 사용 권한을 나열합니다.

EXEC sp_helprotect 'titles';

B. 사용자에 대한 사용 권한 나열

다음 예제에서는 사용자가 Judy 현재 데이터베이스에 있는 모든 권한을 나열합니다.

EXEC sp_helprotect NULL, 'Judy';

C. 특정 사용자가 부여한 사용 권한 나열

다음 예제에서는 현재 데이터베이스에서 사용자가 Judy 부여한 모든 사용 권한을 나열하고 누락된 매개 변수의 자리 표시자로 사용합니다 NULL .

EXEC sp_helprotect NULL, NULL, 'Judy';

D. 문 권한만 나열합니다.

다음 예제에서는 현재 데이터베이스의 모든 문 사용 권한을 나열하고 누락된 매개 변수의 자리 표시자로 사용합니다 NULL .

EXEC sp_helprotect NULL, NULL, NULL, 's';

e. CREATE 문에 대한 사용 권한 나열

다음 예제에서는 사용 권한이 부여된 모든 사용자를 나열합니다 CREATE TABLE .

EXEC sp_helprotect @name = 'CREATE TABLE';