首页 > 代码库 > oracle_控制用户权限

oracle_控制用户权限



oracle_控制用户权限

①权 限
    数据库安全性:
    系统安全性
    数据安全性
    系统权限: 对于数据库的权限
    对象权限: 操作数据库对象的权限

1.系统权限
    超过一百多种有效的权限
    数据库管理员具有高级权限以完成管理任务,例如:
        创建新用户
        删除用户
        删除表
        备份表

②创建用户
DBA 使用 CREATE USER 语句创建用户
CREATE USER user                   
IDENTIFIED BY   password;

1.用户的系统权限
用户创建之后, DBA 会赋予用户一些系统权限
GRANT privilege [, privilege...]   
TO user [, user| role, PUBLIC...];

以应用程序开发者为例, 一般具有下列系统权限:
CREATE SESSION(创建会话)
CREATE TABLE(创建表)
CREATE SEQUENCE(创建序列)
CREATE VIEW(创建视图)
CREATE PROCEDURE(创建过程)

③创建用户表空间
用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
ALTER USER atguigu01(用户) QUOTA UNLIMITED (无限制)
ON users(表空间)

④创建角色并赋予权限
1.创建角色
CREATE ROLE manager;

2.为角色赋予权限
GRANT create table, create view    
TO manager;

3.将角色赋予用户
GRANT manager TO DEHAAN, KOCHHAR;    

⑤修改密码
DBA 可以创建用户和修改密码
用户本人可以使用 ALTER USER 语句修改密码
ALTER USER scott                 
IDENTIFIED BY lion;

⑥对象权限
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
GRANT object_priv [(columns)]
 ON  object
 TO  {user|role|PUBLIC}
 [WITH GRANT OPTION];

WITH GRANT OPTION和PUBLIC关键字
WITH GRANT OPTION 使用户同样具有分配权限的权利
向数据库中所有用户分配权限

⑦查询权限分配情况
数据字典视图 描述
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 用户拥有的系统权限

⑧收回对象权限
使用 REVOKE 语句收回权限
使用 WITH GRANT OPTION 子句所分配的权限同样被收回
REVOKE {privilege [, privilege...]|ALL}
ON   object
FROM   {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];


oracle_控制用户权限