用户管理

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
文章作者: zlinks
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZFS的成长之路
Oracle Oracle基本语法
喜欢就支持一下吧