数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
查看用户在某个对象上面的使用权限

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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




相关文章

相关软件