[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)。
欢迎大家评论交流,发现博文中存在的问题一定要留言哦