• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

查看用户在某个对象上面的使用权限_sqlserver

sqlserver 搞代码 3年前 (2018-06-17) 122次浏览 已收录 0个评论

查看用户在某个对象上面的使用权限可以用数据字典表DBA_TAB_PRIVS.表结构如下:
Name                         Null?    Type
—————————- ——– —————————-
GRANTEE             NOT NULL VARCHAR2(30) <== 权限获得者
OWNER                NOT NULL VARCHAR2(30)

http://www.gaodaima.com/?p=36266查看用户在某个对象上面的使用权限_sqlserver

TABLE_NAME       NOT NULL VARCHAR2(30)
GRANTOR             NOT NULL VARCHAR2(30) <– 权限授予者
PRIVILEGE            NOT NULL VARCHAR2(40)
GRANTABLE                            VARCHAR2(3) <– 权限获得者是否有权限授予别人权限

权限由命令GRANT授予由命令REVOKE收回:
GRANT select, insert, update, delete, references ON my_table TO user_joe ;
REVOKE insert, delete ON my_table FROM user_joe ;
GRANT create public synonym TO user_joe ;

其他相关权限安全的数据字典表有:
ALL_TAB_PRIVS  
ALL_TAB_PRIVS_MADE 
ALL_TAB_PRIVS_RECD 
DBA_SYS_PRIVS  
DBA_ROLES  
DBA_ROLE_PRIVS  
ROLE_ROLE_PRIVS  
ROLE_SYS_PRIVS  
ROLE_TAB_PRIVS  
SESSION_PRIVS  
SESSION_ROLES  
USER_SYS_PRIVS  
USER_TAB_PRIV  

在做完EXP/IMP后,权限需要重新授予时可用下面的脚本:

set echo off
 rem
 rem  19980729  M D Powell   New script.
 rem
 set verify off
 set pagesize 0
 set feedback off
 spool grt_&&owner._&&table_name..sql

 select ‘REM  grants on &&owner..&&table_name’
 from sys.dual ;

 select ‘grant ‘||privilege||’ on ‘||lower(owner)||’.’||
         lower(table_name)||’ to ‘||grantee||
         decode(grantable,’YES’,’ with grant option’,NULL)||
         ‘ ;’
 from   sys.dba_tab_privs
 where  owner      = upper(‘&&owner’)
 and    table_name = upper(‘&&table_name’)
 order by grantee, privilege ;

 spool off
 undefine owner
 undefine table_name

欢迎大家阅读《查看用户在某个对象上面的使用权限_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址