控制用户权限
一、权限:
(1) 数据库的安全性:
1) 系统安全性
2) 数据安全性
(2) 系统权限:对于数据库的权限
(3) 对象权限:操作数据库对象的权限
下面我们来详细了解一下系统权限:
(1) 超过一百多种有效的权限
(2) 数据库管理员具有高级权限以完成管理任务
例如:创建新用户,删除用户,删除表,备份表
二、创建用户
DBA使用create user语句创建用户
例如:create User user identified by password;
(1) 用户的系统权限:
用户创建之后,DBA会赋予一些系统权限
语法:create privilege[,privilege…] to user[,user | role ,public…]
(2) 以应用程序开发者为例,一般具有下列系统权限:
a) CREATE SESSION(创建会话)
b) CREATE TABLE(创建表)
c) CREATE SEQUENCE(创建序列)
d) CREATE VIEW(创建视图)
e) CREATE PROCEDURE(创建过程)
(3) 赋予系统权限:
DBA可以赋予用户特定的权限:
语法:GRANT create session, create table,
create sequence, create view tO scott;
三、角色
(1) 创建角色并赋予权限
1) 创建角色
CREATE ROLE manager;
Role created.
2) 为角色赋予权限
create table, create view
TO manager;
Grant succeeded.
3) 将角色赋予用户
GRANT manager TO DEHAAN, KOCHHAR;
Grant succeeded.
四、修改密码
(1) DBA可以创建用户和修改密码
(2) 用户本人可以使用alter user语句修改密码
ALTER USER scott
IDENTIFIED BY lion;
User altered.
五、对象权限
(1) 不同的对象具有不同的对象权限
(2) 对象的拥有者拥有所有权限
(3) 对象的拥有者可以向外分配权限
1、 分配对象权限
(1) 分配表employees的查询权限
GRANT select
ON employees
TO sue, rich;
Grant succeeded.
(2) 分配表中各个列的更新权限
GRANT update (department_name, location_id)
ON departments
TO scott, manager
Grant succeeded.
2、 查询权限分配情况
数据字典视图 描述
ROLE_SYS_PRIVS 角色拥有的系统权限
ROLE_TAB_PRIVS 角色拥有的对象权限
USER_ROLE_PRIVS 用户拥有的角色
USER_TAB_PRIVS_MADE 用户分配的关于表对象权限
USER_TAB_PRIVS_RECD 用户拥有的关于表对象权限
USER_COL_PRIVS_MADE 用户分配的关于列的对象权限
USER_COL_PRIVS_RECD 用户拥有的关于列的对象权限
USER_SYS_PRIVS 用户拥有的系统权限
3、 收回对象权限
(1) 使用revoke语句收回权限
(2) 使用with grant option子句所分配的权限同样被收回。
REVOKE {privilege [, privilege...]|ALL}
ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];