sp_helprotect (Transact-SQL)

現在のデータベースにおける、オブジェクトに対するユーザー権限、またはステートメント権限に関する情報のレポートを返します。

重要な注意事項重要

sp_helprotect では、SQL Server 2005 に導入されたセキュリティ保護可能なリソースに関する情報は返されません。代わりに、sys.database_permissions および fn_builtin_permissions を使用してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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

引数

  • [ @name = ] 'object_statement'
    レポートする権限が存在する、現在のデータベースのオブジェクトまたはステートメントの名前を指定します。object_statement のデータ型は nvarchar(776) で、既定値は NULL です。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 です。NULL の場合は、現在のデータベースのすべてのプリンシパルが返されます。security_account は現在のデータベースに存在する必要があります。

  • [ @grantorname = ] 'grantor'
    権限を許可したプリンシパルの名前を指定します。grantor のデータ型は sysname で、既定値は NULL です。NULL の場合は、データベース内のすべてのプリンシパルにより許可された権限に関する情報がすべて返されます。

  • [ @permissionarea = ] 'type'
    オブジェクト権限 (文字列 o) を表示するか、ステートメント権限 (文字列 s) を表示するか、または両方 (os) を表示するかを指定します。type のデータ型は varchar(10) で、既定値は os です。type には、os の任意の組み合わせを指定できます。os の間には、コンマまたは空白を入れても入れなくてもかまいません。

戻り値

0 (成功) または 1 (失敗)

結果セット

列名

データ型

説明

Owner

sysname

オブジェクト所有者の名前。

Object

sysname

オブジェクトの名前。

Grantee

sysname

権限が許可されたプリンシパルの名前。

Grantor

sysname

指定したユーザーに権限を許可したプリンシパルの名前。

ProtectType

nvarchar(10)

保護の種類の名前。

GRANT REVOKE

Action

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

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 ロールのメンバシップが必要です。

返される情報は、メタデータへのアクセスに関する制限の対象となります。プリンシパルに権限がないエンティティは表示されません。詳細については、「メタデータ表示の構成」を参照してください。

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'