Oracle SQL 学习笔记13- 数据库权限

在Oracle数据库中,权限用于控制用户存取,主要是为了保证系统安全和数据安全。根据系统管理方式的不同,可将权限分为系统权限对象权限两类。

  • 系统权限:能够存取数据库的权限
  • 对象权限:操作数据库对象的内容

模式

这里模式指对象的集合,包括表、视图、索引等。

系统权限

Oracle数据库预定义的泛指权限,即对某一类对象的权限。DBA拥有最高的系统权限,典型的包括:

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

创建用户

DBA使用 CREATE USER 语句来创建用户。

CREATE  USER user
IDENTIFIED  BY  password; 

例如:

SQL> CREATE USER scott 
  2  IDENTIFIED BY tiger;
用户的权限系统

一旦一个用户被创建了,DBA就可以为这个用户授予特殊的系统权限:

GRANT  privilege [, privilege...]
TO user [, user...]

一个应用开发者可能有下列的系统权限:

  • 创建会话
  • 创建表
  • 创建序列
  • 创建视图
  • 创建过程

角色

在数据库中,为便于对用户及权限进行管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。


role.JPG
CREATE ROLE 【1】
GRANT DBA TO user_test;

改变密码

DBA 创建用户账号,并初始化一个密码。用户可以使用ALTER USER语句来改变密码。

ALTER USER scott
  IDENTIFIED BY lion;

对象权限

对某一个对象的权限。各种对象的权限是不同的。对象的拥有者具有该对象的所有权限,并且可以将该对象的部分权限授权给别人。

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

授予对象权限

授予在EMP表上进行查询的权限:

SQL > GRANT select
  ON  emp
  TO  sue,  rich;

为用户和角色授予Dept表上某些列的修改权限:

SQL > GRANT  update(dname,  loc)
  ON  dept
  TO  scott, manager;

验证授权情况

数据字典表 描述
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 授权给用户的某些列的对象权限

回收权限

使用REOVKE来回收授权给其他用户的权限。如果设置了CASCADE CONSTRAINTS ,那么将同时回收该用户通过 WITH GRANT OPTION 语句授权给其他用户的权限。

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

【1】详细设置可以参考Oracle 官方文档

赋予/回收权限生效

赋予/回收权限后可以立刻在session中生效。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容