[Oracle数据库学习]十三、控制用户权限

D8

权限

 

数据库安全性:

1)系统安全性

2)数据安全性

 

权限:

1)系统权限:对于数据库的权限;

2)对象权限:操作数据库对象的权限。

 

方案:一组数据库对象集合,例如:表、视图、序列。

 

系统权限

超过100种有效的权限。

 

数据库管理员具有高级权限以完成管理任务,如:

创建新用户、删除用户、删除表、备份表。

 

创建用户CREATE USER

DBA创建用户并设置密码:

CREATE USER user
IDENTIFIED BY password;

示例:

CREATE USER testuser 
IDENTIFIED BY testpasswd;

 

用户的系统权限

赋予用户系统权限

用户创建后,DBA会赋予用户一些系统权限。

GRANT privilege[, privilege...]
TO user [, user| role, PUBLIC...];

 

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

示例:

GRANT create session, create table, create sequence, create view
TO testuser;

 

角色

为角色指定一组权限,通过给用户指定角色,使用户具有这些权限。

 

创建角色并赋予权限

创建角色:

CREATE ROLE manager;

 

为角色赋予权限:

GRANT create table, create view 
TO manager;

 

将角色赋予用户:

GRANT manager TO testuser;

 

修改密码

DBA和用户自己可以修改用户密码。

ALTER USER testuser
IDENTIFIED BY testpw;

 

对象权限

对象

权限

视图 序列 过程
插入    
修改    
删除    
执行      
索引      
关联    
选择  
更新    

 

不同对象具有不同的对象权限;

对象的拥有者具有所有对象权限;

对象的拥有者可以对外分配对象权限。

GRANT object_priv[(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];

 

分配对象权限

分配表权限

GRANT select
ON employees
TO testuser;

 

分配表中各个列的更新权限

GRANT update (department_name, location_id)
ON departments
TO testuser;

 

WITH GRANT OPTION

使用户同样具有分配权限的权利

GRANT select, insert
ON departments
TO testuser
WITH GRANT OPTION;

 

PUBLIC

向数据库的所有用户分配权限

GRANT select
ON departments
TO PUBLIC;

 

查询权限分配情况

数据字典视图 描述
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

REVOKE {privilege [, privilege...]|ALL}
ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];

示例:

REVOKE select, insert
ON departments
FROM testuser;

 

 

使用WITH GRANT OPTION子句所分配的权限同样被收回

 

数据库连接

创建数据库连接

CREATE PUBLIC DATABASE LINK hq.acme.com
USING 'sales';

 

使用SQL语句访问远程数据库

SELECT * 
FROM emp@HQ.ACME.COM;

 

总结:

本节主要介绍权限、角色、用户:

1)权限有系统权限和对象权限;

2)权限的:创建(GRANT)、收回(REVOKE);

3)用户:创建(CREATE USER)、修改用户密码(ALTER USER)、赋予角色(GRANT);

4)角色:创建(CREATE ROLE)。

 

posted @ 2020-07-20 11:11  workingdiary  阅读(111)  评论(0)    收藏  举报