oracle用户权限管理
Posted AWNUygah
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle用户权限管理相关的知识,希望对你有一定的参考价值。
oracle中3个默认用户
sys change_on_install [as sysdba]
system manager
scott tiger
一、创建用户及修改密码
create user lisi identified by lisi;
alter user lisi identified by lisi;
二、系统权限
grant create session to lisi;
grant create table to lisi;
grant unlimited tablespace to lisi;
--把创建连接的权限赋予所有人
grant create session to public;
--授予权限
grant 权限 to 用户名;
--撤销权限
revoke 权限 from 用户名;
--查询用户的系统权限
select * from user_sys_privs;
select * from dba_sys_privs;
三、对象权限
grant select(update,insert,delete) on mytab to lisi;
--授予其他用户操作表的所有权限
grant all on mytab to lisi;
revoke select(update,insert,delete) on mytab from lisi;
revoke all on mytab from lisi;
--查看用户的对象权限
select * from user_tab_privs;--其他用户对当前表的操作权限
select * from user_col_privs;--其他用户对当前表字段的操作权限
对象权限可以控制到列:
grant update(name) on mytab to lisi;
grant insert(id) on mytab to lisi;
select * from user_col_privs;
注意:查询和删除不能控制到列
四、权限的传递
--把系统权限赋予给李四并允许授予给其他用户
grant create session to lisi with admin option;
--把用户权限赋予给李四并允许授予给其他用户
grant select on A to lisi with grant option;
五、角色管理
创建角色;create role myrole;
给角色授予权限:grant 权限 to myrole;
删除角色:drop role myrole;
将角色授予给用户:grant 角色 to 用户;
用户查询拥有的角色:select * from user_role_privs;
注意:有些系统权限无法直接赋予角色
create table create any table
[alter table] alter any table
[drop table] drop any table
表示属于某一个用户的,角色不属于某个用户。
六、用户权限相关查询
dba_* 描述的是数据库中的所有对象
all_* 描述的是当前用户有访问权限的所有对象
user_* 描述的是当前用户所拥有的所有对象
*_users 用户表
*_sys_privs 系统权限表
*_tab_privs 用户对象权限表
dba_roles 所有角色
select * from user_sys_privs;
select * from dba_sys_privs;
select * from user_tab_privs;--其他用户对当前表的操作权限
select * from user_col_privs;--其他用户对当前表字段的操作权限
select * from role_sys_privs;--查看角色(只能查看登录用户拥有的角色)所包含的权限
以上是关于oracle用户权限管理的主要内容,如果未能解决你的问题,请参考以下文章