oracle权限和同义词 笔记

来源:互联网 发布:中世纪2优化9毛子 编辑:程序博客网 时间:2024/05/21 08:28

工作上碰到了同义词和权限的东西,放在这做个总结:



1.查看当前用户所拥有的系统权限   

select * from session_privs;


 2.查看数据库内的所有角色   
select * from dba_roles;


4.查看当前用户所拥有的角色  
select * from session_roles;   


5.查看角色的嵌套关系和所授予的用户 
select * from dba_role_privs order by 1;


6.其他查看角色和权限的命令   
select * from role_sys_privs;
select * from dba_sys_privs;


7.表级对象权限   
select * from user_tab_privs_made;
select * from user_tab_privs_recd;


8.列上的对象权限   
select * from user_col_privs_made; 
select * from user_col_privs_recd;   
9.比较connect和resoucr角色的权限差别   
select grantee,privilege from dba_sys_privs where grantee='RESOURCE' OR GRANTEE LIKE 'CONNECT'


10.查看oracle的版本
select version from v$instance;


select * from role_role_privs where role='CONNECT'
CONNECT角色在10g以后就只有create session的权限了,以前其他版本的权限都被取消了。
当RESOURCE角色被授予一个用户后,该用户自动拥有了unlimited tablespace的系统权限。
select * from role_role_privs
select * from role_sys_privs;
select * from role_tab_privs;
select * from role_wm_privs;


 查看某个role赋给了哪些user或role:
 select * from DBA_ROLE_PRIVS where GRANTee='ifm30';
 select * from dba_users;
 grant RESOURCE to TYF with admin option

 commit

创建同义词:create public synonym table_name for user.table_name;2.删除同义词:drop public synonym table_name;3.查看所有同义词:select * from dba_synonyms
Oracle同义词的作用
1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
2) 为用户简化sql语句。上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个Oracle同义词来简化sql开发。
3)为分布式数据库的远程对象提供位置透明性。


原创粉丝点击