1.用户管理
- 创建用户,并设置密码
create user 用户名 identified by 密码;
- 删除用户
drop user 用户名;
- 修改口令
alter user 用户名 identified by "密码";
- 用户加锁和解锁
--加锁
Alter user 用户名 account lock;
--解锁
Alter user 用户名 account unlock;
- 用户授权
grant 权限名称1, 权限名称2, ... to 用户名1, 用户名2, 用户名3, ...;
角色种类:
何为角色:
角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
建议:对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
--建立一个角色
create role role1;
--授权给角色
grant create any table,create procedure to role1;
--然后给某个用户授予某个角色,或者某种权限(这个用户就拥有了role1的所有权限)
grant role1 to user1;
--查看角色所包含的权限
select * from role_sys_privs;
--删除角色
drop role role1;
权限种类:
- 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
- 对象权限(实体权限):某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。
- 与权限,角色相关的视图
DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限
USER_SYS_PRIVS: 当前用户所拥有的系统权限
SESSION_PRIVS: 当前用户所拥有的全部权限
ROLE_SYS_PRIVS: 某个角色所拥有的系统权限
- 注意: 要以SYS用户登陆查询这个视图,否则返回空.
ROLE_ROLE_PRIVS: 当前角色被赋予的角色
SESSION_ROLES: 当前用户被激活的角色
USER_ROLE_PRIVS: 当前用户被授予的角色
- 另外还有针对表的访问权限的视图:
TABLE_PRIVILEGES
ALL_TAB_PRIVS
ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限
--查看某一用户所拥有的角色
select * from dba_role_privs where GRANTEE='用户名';
--查看某一用户所拥有系统权限
select * from dba_sys_privs where GRANTEE='用户名';
实体权限分类:select, update, insert, alter, index, delete, all //all包括所有权限
execute //执行存储过程权限
--给user02用户授予prouct表的实体权限
grant select, update, insert on product to user02;
--user02得到权限,并可以传递
grant select, update on product to user02 with grant option;
实体权限回收:
Revoke select, update on product from user02;