Oracle数据库的应用-用户的授权(上)

227 阅读2分钟

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战」。

Oracle的用户授权

1. 授权

sql格式:
GRANT 权限/角色列表 TO 用户名 [WITH ADMIN OPTION];
例如1:
GRANT dba TO nowashing;
授权dba角色给nowashing这个用户。
后续篇章将权限,角色统称为权限。
例如2:
权限或角色有多项用逗号分隔:
GRANT connect,resource,dba TO nowashing;
例如3:
被授权用户拥有此权限后是否可以再将此权限授予别人:
GRANT dba TO nowashing WITH ADMIN OPTION;
不加WITH ADMIN OPTION是不允许授予别人的。
例如4:
将某授权授予给所有用户:
GRANT 权限 TO PUBLIC;

2. 撤消授权

sql格式:
REVOKE 权限/角色列表 FROM 用户
例如:REVOKE  dba TO nowashing;
收回(撤消)dba角色从nowashing这个用户。
权限或角色有多项用逗号分隔:
REVOKE  connect,resource,dba TO nowashing

3. 查询已拥有的权限

SELECT * FROM dba_sys_privs; --查询所有用户和角色被授予的系统权限

SELECT * FROM user_sys_privs; --查询当前登录用户被授予的系统权限

SELECT * FROM user_role_privs—查询当前登录用户拥有的角色

4. 常见系统权限

  • 系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。
  • 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等。

Oracle的系统权限有206种(SELECT * FROM system_privilege_map),以下仅列出常用的一些:

权限名称描述
create session连接到数据库
create sequence创建序列
create synonym创建同义词
create public synonym创建公用的同义词
create table创建表
create any table在任何模式中创建表
drop table删除表
drop any table删除任何模式中的表
create procedure创建存储过程
execute any procedure运行任务模式中的存储过程
create user创建用户
alter user修改用户
drop user删除用户
create view创建视图 

模式(schema):是某个用户拥有所有对象的集合。

5. 常见系统角色

角色名称拥有权限
dba所有权限
connectcreate session 连接到数据库alter session --修改会话 create sequence --建立序列 create synonym --建立同义词 create view --建立视图create cluster --建立聚簇 create database link --建立数据库链接
resourcecreate trigger--建立触发器create sequence  --建立序列create procedure --建立存储过程create cluster --建立聚簇create operator  --建立操作员create index --建立索引create indextype --建立索引类型create table --建立表