得到使用者或語句許可權的資訊

2021-04-06 20:41:57 字數 2779 閱讀 8480

返回乙個報表,報表中包含當前資料庫中某物件的使用者許可權或語句許可權的資訊。

語法sp_helprotect [ [ @name

= ] '

object_statement

' ][ , [ @username

= ] '

security_account

' ][ , [ @grantorname

= ] '

grantor

' ][ , [ @permissionarea

= ] '

type

' ]引數

[@name

=] '

object_statement'

是當前資料庫中要報告其許可權的物件或語句的名稱。object_statement 的資料型別為 nvarchar(776),預設值為 null,此預設值將返回所有的物件及語句許可權。如果值是乙個物件(表、檢視、儲存過程或擴充套件儲存過程),那麼它必須是當前資料庫中乙個有效的物件。物件名稱可以包含所有者限定符,形式為 owner.object。

如果 object_statement 是乙個語句,則可以為:

[@username

=] '

security_account'

是返回其許可權的安全帳戶名稱。security_account 的資料型別為 sysname,預設值為 null,這個預設值將返回當前資料庫中所有的安全帳戶。security_account 必須是當前資料庫中的有效安全帳戶。當指定 microsoft® windows nt® 使用者時,請指定該 windows nt 使用者在資料庫中可被識別的名稱(用 sp_grantdbaccess 新增)。

[@grantorname

=] '

grantor'

是已授權的安全帳戶的名稱。grantor 的資料型別為 sysname,預設值為 null,這個預設值將返回資料庫中任何安全帳戶所授權限的所有資訊。當指定 windows nt 使用者時,請指定該 windows nt 使用者在資料庫中可被識別的名稱(用 sp_grantdbaccess 新增)。

[@permissionarea

=] '

type'

是乙個字串,表示是顯示物件許可權(字串 o)、語句許可權(字串 s)還是兩者都顯示 (o s)。type 的資料型別為 varchar(10),預設值為 o s。type 可以是 o 和 s 的任意組合,在 o 和 s 之間可以有也可以沒有逗號或空格。

返回**值

0(成功)或 1(失敗)

結果集列名

資料型別

描述owner

sysname

物件所有者的名稱。

object

sysname

物件的名稱。

grantee

sysname

被授予許可權的使用者的名稱。

grantor

sysname

向指定的被授權限使用者進行授權的使用者的名稱。

protecttype

char(10)

保護型別的名稱: grant

revoke

action

varchar(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'

查詢使用者和許可權資訊

user role privs描述了當前使用者授予的角色。即檢視當前使用者的角色 角色就是相關許可權的命令集合,使用角色的主要目的就是為了簡化許可權的管理。執行select from user role privs 列出授予當前使用者的系統特權。執行select from user sys priv...

檢視Oracle使用者的許可權或角色

前幾天被問到一些關於許可權和角色的問題,今天抽時間總結一下如何檢視oracle使用者的許可權或角色,在之前的博文中,寫過 sys,system,dba,sysdba,sysoper的區別與聯絡 以及 oracle中定義者許可權和呼叫者許可權案例分析 這兩篇博文,讀者可以參考閱讀!oracle的東西感...

檢視Oracle使用者的許可權或角色

一 檢視使用者 1.檢視所有使用者 select from dba users select from all users select from user users 檢視當前使用者 二 檢視角色 1.當前使用者被啟用的全部角色 select from session roles 2.當前當前使用...