13、Oracle中的控制用户权限

最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。
视频链接:
【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用
如果有侵权,请联系删除,谢谢。

学习目标:

  • 创建用户
  • 创建角色
  • 使用GRANT 和 REVOKE 语句赋予和回收权限
  • 创建数据库联接

1、权 限

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

1.1、系统权限

超过一百多种有效的权限

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

  • 创建新用户
  • 删除用户
  • 删除表
  • 备份表

2、创建用户

DBA 使用 CREATE USER 语句创建用户

CREATE USER user              			   
IDENTIFIED BY   password;


-- 示例
CREATE USER  scott
IDENTIFIED BY   tiger;
User created.

2.1、用户的系统权限

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

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

以应用程序开发者为例, 一般具有下列系统权限:

  • CREATE SESSION(创建会话)
  • CREATE TABLE(创建表)
  • CREATE SEQUENCE(创建序列)
  • CREATE VIEW(创建视图)
  • CREATE PROCEDURE(创建过程)

2.2、赋予系统权限

DBA 可以赋予用户特定的权限

GRANT  create session, create table, 
       create sequence, create view
TO     scott;
Grant succeeded.

2.3、创建用户表空间

用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间,用于创建的表

ALTER USER atguigu01 QUOTA UNLIMITED 
ON users
User altered.

2.4、修改密码

DBA 可以创建用户和修改密码

用户本人可以使用 ALTER USER 语句修改密码

ALTER USER scott             			  
IDENTIFIED BY lion;
User altered.

3、角 色

3.1、创建角色并赋予权限

  • 创建角色
create role manager;
  • 为角色赋予权限
grant create session, create table, create view to manager;
  • 将角色赋予用户
grant manager to dehaan, kochhar;

4、对象权限

4.1、对象权限

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

4.2、分配对象权限

分配表 EMPLOYEES 的查询权限

GRANT  select
ON     employees
TO     sue, rich;
Grant succeeded.

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

GRANT  update 
ON     scott.departments
TO     atguigu
Grant succeeded.

4.3、WITH GRANT OPTION和PUBLIC关键字

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

GRANT  select, insert
ON     departments
TO     scott
WITH   GRANT OPTION;
Grant succeeded.

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

GRANT  select
ON	  alice.departments
TO	  PUBLIC;
Grant succeeded.

4.4、查询权限分配情况

4.5、收回对象权限

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

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

收回对象权限举例

REVOKE  select, insert
ON      departments
FROM    scott;
Revoke succeeded.

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

posted @ 2024-07-14 21:44  画个一样的我  阅读(14)  评论(0编辑  收藏  举报