sp_helprotect (Transact-SQL)
適用対象:SQL Server
現在のデータベースのオブジェクトまたはステートメント権限に対するユーザー権限に関する情報を示すレポートを返します。
重要
sp_helprotect
では、SQL Server 2005 (9.x) 以降のバージョンで導入されたセキュリティ保護可能なリソースに関する情報は返されません。 代わりにsys.database_permissionsとsys.fn_builtin_permissionsを使用してください。
固定サーバー ロールまたは固定データベース ロールに常に割り当てられているアクセス許可は一覧表示されません。 ロールのメンバーシップに基づいてアクセス許可を受け取るログインやユーザーは含まれません。
構文
sp_helprotect
[ [ @name = ] N'name' ]
[ , [ @username = ] N'username' ]
[ , [ @grantorname = ] N'grantorname' ]
[ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]
引数
[ @name = ] N'name'
現在のデータベース内のオブジェクトの名前、またはレポートするアクセス許可であるステートメント。 @nameは nvarchar(776) で、既定値は 、すべてのオブジェクトとステートメントのNULL
アクセス許可を返します。 値がオブジェクト (テーブル、ビュー、ストアド プロシージャ、または拡張ストアド プロシージャ) の場合は、現在のデータベース内の有効なオブジェクトである必要があります。 オブジェクト名には、フォーム <owner>.<object>
に所有者修飾子を含めることができます。
@nameがステートメントの場合は、ステートメントにすることができますCREATE
。
[ @username = ] N'username'
アクセス許可が返されるプリンシパルの名前。 @usernameは sysname で、既定値は現在のNULL
データベース内のすべてのプリンシパルを返します。 @usernameは、現在のデータベースに存在する必要があります。
[ @grantorname = ] N'grantorname'
アクセス許可を付与したプリンシパルの名前。 @grantornameは sysname で、既定値はデータベース内の任意のNULL
プリンシパルによって付与されたアクセス許可のすべての情報を返します。
[ @permissionarea = ] 'permissionarea'
オブジェクトのアクセス許可 (文字列)、ステートメントのアクセス許可 (文字列o
)、またはその両方o s
() を表示するかどうかを示す文字列s
。 @permissionareaは varchar(10) で、既定値は o s
. @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';
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示