数据库授权相关

1、给数据库用户授权(对象为用户表)

GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group | username}
  
privilege:
     select :查询
     insert :插入
     update :更新
     delete :删除
     rule
     all :所有
  
grant select , insert , update on tablename to public ;
给所有用户授予查询、插入、更新tablename表的权限
revoke select , insert , update on tablename from public ;//收回所有用户查询、插入、更新tablename表的权限
  
object:
     table :表
     view :视图
     sequence :序列
     index :索引
  
grant select , insert , update on tablename,viewname,sequencename,indexname to public ;
  
public :对所有用户开放权限
GROUP groupname:对该组所有用户开放权限
username:对指定用户开放权限
  
2、给数据库用户授权(对象多为系统表,如dba可以查看的表)
  
grant dba to username;
不给用户授予dba权限,用户将无法查看系统表,例如v$datafile,dba_data_files等
revoke dba from username;//对用户username回收dba权限
注:如果使用pl/sql登录,授予dba权限后,需要重新登陆(初始理解,错误)
后经验证,不需要重新登陆,只需要重新打开一个会话就可以
理解:数据库的所有权限操作,都是以会话为单位,如果当前会话执行时没有dba权限,即便是已经重新赋予了权限,在当前会话中也是不起作用的
而如果当前会话有dba权限,而后台取消了权限,那么当前会话的dba权限也不会消失
  
grant connect to username;
不给新建用户授予 connect 权限,新建用户无法通过SID或SERVICE_NAME连接数据库实例,即无法登录数据库
revoke connect to username;//对用户username回收 connect 权限
  
grant resource to username with admin option ;
grant unlimited tablespace to username with admin option ;
不给新建用户授予resource权限,新建用户无法创建表
revoke resource from username;//对用户回收resource权限
  
3、查看指定用户有哪些系统权限
select * from dba_role_privs where grantee= upper ( 'username' );
  
4、查看指定用户有哪些对象权限
select * from dba_tab_privs where grantee= upper ( 'username' );
  
  
可能遇到问题:
1、当在一个新建数据库用户上创建表失败时,可以查看系统权限
     在当前用户执行 select * from dba_role_privs where grantee= upper ( 'username' );如果不能执行(提示表或视图不存在),说明没有dba权限
     解决方法:可以登录sys账户赋予dba权限
     登录sys:sqlplus / as sysdba
     给username赋权限: grant dba to username;
  
     也可以直接登录sys账户, select * from dba_role_privs where grantee= upper ( 'username' ),如果granted_role的值没有dba,说明没有dba权限
  
  
权限相关的查询和赋予:
所有权限的赋予均是在有赋予权限的用户下进行,此处授权用户都是sys用户
1、 select * from dba_role_privs where grantee= upper ( 'luyongpeng' );
其中,admin_option是通过在授权时添加 with admin option 选项定义
grant dba to luyongpeng with admin option ;//admin_option为YES,如果不加 with admin option 选项,则admin_option为 NO
使用 grant dba to luyongpeng;无法覆盖之前的权限
grant dba to luyongpeng with admin option 可以覆盖 grant dba to luyongpeng;的权限
 
 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值