sp_helprotect(Transact-SQL)

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

중요 정보중요

sp_helprotect는 SQL Server 2005에서 도입된 보안 개체에 대한 정보를 반환하지 않습니다. 대신 sys.database_permissionsfn_builtin_permissions를 사용하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_helprotect [ [ @name = ] 'object_statement' ] 
     [ , [ @username = ] 'security_account' ] 
     [ , [ @grantorname = ] 'grantor' ] 
     [ , [ @permissionarea = ] 'type' ]

인수

  • [ @name = ] 'object_statement'
    보고서에 대한 사용 권한을 가진 현재 데이터베이스에 있는 개체 또는 문의 이름입니다. object_statement는 nvarchar(776)이며, 기본값은 모든 개체 및 문 사용 권한을 반환하는 NULL입니다. 값이 개체(테이블, 뷰, 저장 프로시저 또는 확장 저장 프로시저)인 경우에는 반드시 현재 데이터베이스의 유효한 개체여야 합니다. 개체 이름은 owner**.**object 형식으로 소유자의 한정자를 포함할 수 있습니다.

    문이 object_statement인 경우 다음 문 중 하나일 수 있습니다.

    • CREATE DATABASE

    • CREATE DEFAULT

    • CREATE FUNCTION

    • CREATE PROCEDURE

    • CREATE RULE

    • CREATE TABLE

    • CREATE VIEW

    • BACKUP DATABASE

    • BACKUP LOG

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

  • [ @grantorname = ] 'grantor'
    사용 권한을 부여한 보안 주체의 이름입니다. grantor는 sysname이며 기본값은 데이터베이스의 보안 주체에 의해 부여된 사용 권한에 대한 모든 정보를 반환하는 NULL입니다.

  • [ @permissionarea = ] 'type'
    개체 사용 권한(문자열 o), 문 사용 권한(문자열 s) 또는 두 가지 모두(os)를 표시할지 여부를 나타내는 문자열입니다. type은 varchar(10)이며 기본값은 os입니다. type은 os를 자유롭게 조합해서 사용할 수 있으며 os 사이에 쉼표 또는 공백의 유무는 관계없습니다.

반환 코드 값

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

결과 집합

열 이름

데이터 형식

설명

소유자

sysname

개체 소유자의 이름입니다.

개체

sysname

개체 이름입니다.

피부여자

sysname

사용 권한이 부여된 보안 주체의 이름입니다.

사용 권한을 부여한 사용자

sysname

지정된 사람에게 사용 권한을 부여한 보안 주체의 이름입니다.

ProtectType

nvarchar(10)

보호의 유형 이름입니다.

GRANT REVOKE

동작

nvarchar(20)

사용 권한의 이름입니다.

  • REFERENCES

  • SELECT

  • INSERT

  • DELETE

  • UPDATE

  • CREATE TABLE

  • CREATE DATABASE

  • CREATE FUNCTION

  • CREATE RULE

  • CREATE VIEW

  • CREATE PROCEDURE

  • EXECUTE

  • BACKUP DATABASE

  • CREATE DEFAULT

  • BACKUP LOG

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 역할의 멤버 자격이 필요합니다.

반환되는 정보는 메타데이터에 대한 액세스 제한 사항에 따라 달라집니다. 보안 주체에 사용 권한이 없는 엔터티는 나타나지 않습니다. 자세한 내용은 메타데이터 표시 유형 구성을 참조하십시오.

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

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

EXEC sp_helprotect 'titles'

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

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

EXEC sp_helprotect NULL, 'Judy'

3. 특정 사용자에 의해 부여된 사용 권한 나열

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

EXEC sp_helprotect NULL, NULL, 'Judy'

4. 문 사용 권한만 나열

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

EXEC sp_helprotect NULL, NULL, NULL, 's'