一、用户的操作
1、用户的创建
语法格式
create user 用户名 identified by 口令(密码)
default tablespace 表空间名
temporary tablespace 表空间名
其中
default tablespace; 用户对象默认保存表空间
temporary tablespace; 用户对象临时保存的表空间
--用户创建实例
eg:创建用户test 密码也是test,默认表空间users,临时表空间用temp
create user test identified by test
default tablespace users
temporary tablespace temp;
2、用户的授权 ------登录 sys 授予权限
grant create user to scott
grant alter user to scott
grant drop user to scott
3、用户的修改
alter user 用户名 identified by 密码
default tablespace 表空间-----------可省略
temporary tablespace 表空间--------可省略
例如:alter user scott identified by lion-----修改密码
alter user 用户名 default tablespace 表空间名--修改用户的默认表空间
4、用户管理
(1)创建用户
create user 用户名 identified by 口令(密码) account unlock;
(2)为用户授予连接数据库的权限
grant connect to 用户---登录 sys ,在sys用户下授予权限
grant create session to------方法二
(3)为用户授予查询Scott用户下emp表的权限
grant select on scott.emp to 用户名
例如:grant select on scott.emp to ee
5、删除用户
drop user 用户名
drop user 用户名 cascade---删除所有信息
二、权限操作
1、权限分类
(1)系统权限:系统规定用户使用数据库的权限。(系统权限是对于用户而言)
例如:create session ; create table; create sequence; create view;create procedure 存储过程等。
(2)对象权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。
例如:alter;select;insert;update;delete 等
可以修改所有的表的权限。
alter any tale
可以查询所有的表的权限。
select any table
2、权限的查询
(1)select * from user_sys_privs -----查询当前用户的系统权限 不要查询 sys
(2)select * from user_tab_privs -----查询当前用户的对象权限
3、权限分配
(1)给用户分配系统权限
grant 权限 to 用户
例如:给test用户分配权限
grant create user to test 授权可以创建用户
grant alter user to test 授权可以修改用户
grant drop user to test 授权可以删除用户
grant create session to test 授权用户可以连接到数据库
grant create table to test 授权用户可以创建表
grant insert any table to test 插入表的权限
grant update any table to test 修改表的权限
grant drop any table to test 删除表的权限
grant unlimited tablespace to test 授权用户可以使用表空间
(2)给用户分配对象权限
grant 权限 on 对象名 to 用户名
grant select on 对象名 to 用户名 将查询权限赋给某人
grant insert on 对象名 to 用户名 将添加数据的权限赋给某人
grant update on 对象名 to 用户名 更新权限赋给用户
grant all on 对象名 to 用户名 将对象上所有的权限都给某人
grant insert on 对象名 to public 将插入权限赋给所有的用户
例如:grant select,insert,update on scott.emp to test,那么Scott用户就有权限操作Scott用户下emp表的查询插入更新的权限
grant all on product to user2;
grant all on product to public; public表示是所有的用户,这里的all权限不包括drop。
(3)将权限控制在表列级别上
grant update (列名) on 表名 to 用户名-------只能修改表中的固定列
grant update (sal) on scott.emp to test-----test就拥有修改 sal的权限
grant insert (列名)on 表名 to 用户名------只能插入表中固定的列
注:查询select ,删除delete不能控制到列级别
4、权限的传递 -----可以将自己拥有的权限继续分配给别人
(1)系统权限的传递
grant 权限 to 用户 with admin option
(2)对象权限的传递
grant 权限 to 用户 with grant option
5、权限的收回
1、系统权限的收回----在sys 用户下操作
revoke 权限 from 用户
revoke create user from Scott;
2、对象权限的收回
revoke 权限 on 对象名 from 用户名
revoke select on scott.emp from ee
三、角色(群)的操作
1、创建、删除角色
create role 角色名称
drop role 角色名称 -----删除角色
2、为角色授权
grant select on 对象名 to 角色名
grant select on scott.emp to 角色名
grant select on scott.dept to 角色名
3、收回权限 ---对角色的权限分配与收回与对用户的权限分配与收回操作一样。
revoke 权限 from 角色名
例如:revoke create user from 角色名
4、为用户授予某个角色---拉进角色(群)
grant 角色 to 用户名
注:系统中默认建好的几个常用角色
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
Oracle数据用户有两种途径获得权限:
(1)直接向用户授予权限
(2)将权限授予给角色,再将角色授予给一个或多个用户。使用角色能够更加方便和高效地对权限进行管理,所以数据库管理员通常使用角色向用户授予权限,而不是直接向用户授予权限。
原文地址:https://www.cnblogs.com/wyx666/p/11219224.html