成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

使用SQL語句獲取SQL Server數(shù)據(jù)庫登錄用戶權(quán)限

瀏覽:138日期:2023-11-02 18:09:30

返回一個報表,報表中包含當(dāng)前數(shù)據(jù)庫中某對象的用戶權(quán)限或語句權(quán)限的信息。

語法

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

參數(shù)

[@name =] 'object_statement'

是當(dāng)前數(shù)據(jù)庫中要報告其權(quán)限的對象或語句的名稱。object_statement 的數(shù)據(jù)類型為 nvarchar(776),默認值為 NULL,此默認值將返回所有的對象及語句權(quán)限。如果值是一個對象(表、視圖、存儲過程或擴展存儲過程),那么它必須是當(dāng)前數(shù)據(jù)庫中一個有效的對象。對象名稱可以包含所有者限定符,形式為 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'

是返回其權(quán)限的安全帳戶名稱。security_account 的數(shù)據(jù)類型為 sysname,默認值為 NULL,這個默認值將返回當(dāng)前數(shù)據(jù)庫中所有的安全帳戶。security_account 必須是當(dāng)前數(shù)據(jù)庫中的有效安全帳戶。當(dāng)指定 Microsoft® Windows NT® 用戶時,請指定該 Windows NT 用戶在數(shù)據(jù)庫中可被識別的名稱(用 sp_grantdbaccess 添加)。

[@grantorname =] 'grantor'

是已授權(quán)的安全帳戶的名稱。grantor 的數(shù)據(jù)類型為 sysname,默認值為 NULL,這個默認值將返回數(shù)據(jù)庫中任何安全帳戶所授權(quán)限的所有信息。當(dāng)指定 Windows NT 用戶時,請指定該 Windows NT 用戶在數(shù)據(jù)庫中可被識別的名稱(用 sp_grantdbaccess 添加)。

[@permissionarea =] 'type'

是一個字符串,表示是顯示對象權(quán)限(字符串 o)、語句權(quán)限(字符串 s)還是兩者都顯示 (o s)。type 的數(shù)據(jù)類型為 varchar(10),默認值為 o s。type 可以是 o 和 s 的任意組合,在 o 和 s 之間可以有也可以沒有逗號或空格。

返回代碼值

0(成功)或 1(失敗)

結(jié)果集

列名

數(shù)據(jù)類型

描述

Owner

sysname

對象所有者的名稱。

Object

sysname

對象的名稱。

Grantee

sysname

被授予權(quán)限的用戶的名稱。

Grantor

sysname

向指定的被授權(quán)限用戶進行授權(quán)的用戶的名稱。

ProtectType

char(10)

保護類型的名稱: GRANTREVOKE

Action

varchar(20)

權(quán)限的名稱: REFERENCESSELECTINSERTDELETEUPDATECREATE TABLECREATE DATABASECREATE FUNCTIONCREATE RULECREATE VIEWCREATE PROCEDUREEXECUTEBACKUP DATABASECREATE DEFAULTBACKUP LOG

Column

sysname

權(quán)限的類型: All = 權(quán)限適用于對象所有的當(dāng)前列。New = 權(quán)限適用于任何以后可以在對象上進行修改(使用 ALTER 語句)的新列。All+New = All 和 New 的組合。

注釋

該過程的所有參數(shù)都是可選的。如果不帶參數(shù)執(zhí)行 sp_helprotect,將顯示當(dāng)前數(shù)據(jù)庫中所有已經(jīng)授予或拒絕的權(quán)限。

如果指定了一部分參數(shù),而不是指定全部參數(shù),請使用命名參數(shù)來標識特定的參數(shù),或者使用 NULL 作為占位符。例如,若要報告授予方 dbo 的所有權(quán)限,請執(zhí)行:

EXEC sp_helprotect NULL, NULL, dbo

EXEC sp_helprotect @grantorname = 'dbo'

輸出報表按權(quán)限分類、所有者、對象、被授予方、授予方、保護類型分類、保護類型、動作以及列連續(xù) ID 進行排序。

權(quán)限

執(zhí)行權(quán)限默認授予 public 角色。

示例

A. 列出某個表的權(quán)限

下面的示例列出了表 titles 的權(quán)限。

EXEC sp_helprotect 'titles'

B. 列出某個用戶的權(quán)限

下面的示例列出當(dāng)前數(shù)據(jù)庫中用戶 Judy 所擁有的所有權(quán)限。

EXEC sp_helprotect NULL, 'Judy'

C. 列出由某個特定的用戶授予的權(quán)限

下面的示例列出了當(dāng)前數(shù)據(jù)庫中由用戶 Judy 授予的所有權(quán)限,使用 NULL 作為缺少的參數(shù)的占位符。

EXEC sp_helprotect NULL, NULL, 'Judy'

D. 僅列出語句權(quán)限

下面的示例列出當(dāng)前數(shù)據(jù)庫中所有的語句權(quán)限,使用 NULL 作為缺少的參數(shù)的占位符。

EXEC sp_helprotect NULL, NULL, NULL, 's'