oracle权限管理
用户管理
create user test--在管理员账户下,创建用户test
identified by test --密码为test
default tablespace users --表空间users
password expire- -设置密码已过期
account lock --设置用户状态为加锁,禁用用户账户
alter user user_name account unlock --启用用户账户
alter user scott identified by admin; --修改密码
show user --当前用户
conn user-name/password --连接用户
grant connect to user_name --为新用户授予和数据库建立连接的角色
授权
为新用户授予和数据库建立回话的系统权限
grant create session to name_space;
授予用户使用表空间的权限
grant unlimited session to zhangsan;
授予用户创建表的权限
grant create table to zhangsan;
授予用户删除表的权限
grant drop table to zhangsan;
插入表的权限
grant insert table to zhangsan;
修改表的权限
grant update table to zhangsan;
oracle对权限管理比较严谨,普通用户之间也是默认不能访问的
授予用户查看指定表的权限
grant select on tablename to zhangsan;
授予用户删除指定表的权限
grant drop on tablename to zhangsan;
授予用户插入指定表的权限
grant insert on tablename to zhangsan;
授予用户修改指定表的权限
grant update on tablename to zhangsan;
授予用户对指定表特定字段的插入权限
grant insert(id) on tablename to zhangsan;
授予用户对指定表特定字段的修改权限
grant update(id) on tablename to zhangsan;
注意:授予用户对指定表特定字段的插入与修改权限,只能是insert 和update
授予用户修改任意表的权限
grant alter all table to user_name
批量生成授权语句
Select 'grant select on '||owner||'.'||table_name||' to test; ' from dba_tables where owner ='user_name';--user_name为大写
其他语法同上,改前面的权限关键字就可以
撤销授权
基本语法同grant,关键字为revoke
查看权限
查看当前用户所用权限
select * from user_sys_privs;
查看所有用户对表的权限
select * from user__sys_privs;
权限传递
即用户A将权限授予B,B可以将操作的权限再授予C
grant alter table on tablename to test with admin option;
grant alter table on tablename to teat with grant option;
使用角色授权
创建公共用户test
create user mdsd20 identified by mdsd20;
grant connect ,create view to mdsd20;
创建角色role_select_all
create role role_select_all;
授权其他公共用户用户下所有表
Select 'grant select on '||owner||'.'||table_name||' to test; ' from dba_tables where owner ='user_name';--user_name为大写
执行生成的语句完成授权给角色
授权角色role_select_all 给公共用户
grant role_select_all to test
本文链接:
/archives/oracle-role
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
ZFS的成长之路!
喜欢就支持一下吧