Oracle数据库(十三)—— 控制用户权限
(一)权限
数据库安全性:
- 系统安全性
- 数据安全性
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
系统权限
超过一百多种有效的权限
数据库管理员(DBA)具有高级权限以完成管理任务,例如:
- 创建新用户
- 删除用户
- 删除表
- 备份表
(二)用户
1、创建用户
Oracle登录用户为system用户,system用户是一个DBA

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

使用atguigu用户登录

缺少CREATE SESSION权限,无法登录,在下面会对其赋予权限
2、用户的系统权限
用户创建之后, DBA 会赋予用户一些系统权限
GRANT privilege [, privilege...]
TO user [, user | role, PUBLIC...];
以应用程序开发者为例, 一般具有下列系统权限:
- CREATE SESSION(创建会话)
- CREATE TABLE(创建表)
- CREATE SEQUENCE(创建序列)
- CREATE VIEW(创建视图)
- CREATE PROCEDURE(创建过程)
-- 授予atguigu用户CREATE SESSION权限

再次登录atguigu用户,登录成功

在atguigu用户中创建表

在system用户中给atguigu赋予创表权限

再次在atguigu用户中创建表

3、创建用户表空间
用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
-- 为atguigu用户创建一个不限额的表空间

-- 为atguigu用户创建一个5M的表空间
4、修改密码
用户可以修改自己的密码

(三)角色

创建角色并赋予权限
创建角色

给角色赋予权限

将角色赋予用户

(四)对象
1、对象权限

- 不同的对象具有不同的对象权限
- 对象的拥有者拥有所有权限
- 对象的拥有者可以向外分配权限
2、分配对象权限
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
-- 将employees的select,update权限授予atguigu用户

在atguigu用户中查询employees表

3、WITH GRANT OPTION和PUBLIC关键字
WITH GRANT OPTION 使用户同样具有分配权限的权利
在system用户下完成以下命令

在atguigu用户中可以将此权限授予其他用户

PUBLIC向数据库中所有用户分配权限
在system用户下完成以下命令

则这个数据库中的用户都具有这两个权限
4、查询权限分配情况

-- 查询用户拥有的关于表对象权限

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

(五)总结
使用 DCL 控制数据库权限, 创建数据库联接:


浙公网安备 33010602011771号