赞
踩
数据库安全性
--系统安全性
--数据安全性
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
超过一百多种有效的权限
数据库管理员具有高级权限以完成管理任务,例如:
创建新用户
删除用户
删除表
备份表
DBA 使用 CREATE USER 语句创建用户
CREATE USER user IDENTIFIED BY password;
注:oracle12c在结构上做出了调整,引入了CDB和PDB的概念,CDB中的操作,用sys默认登录的是CDB,但是如果想在CDB中创建用户(可以理解为公共用户)的话,那么必须在用户名前面加上“c##”,否则会报错:
正确写法:
用户创建之后, DBA 会赋予用户一些系统权限
GRANT privilege [, privilege...]TO user [, user| role, PUBLIC...];
以应用程序开发者为例, 一般具有下列系统权限:
CREATE SESSION(创建会话)
CREATE TABLE(创建表)
CREATE SEQUENCE(创建序列)
CREATE VIEW(创建视图)
CREATE PROCEDURE(创建过程)
DBA 可以赋予用户特定的权限
GRANT create session, create table, create sequence, create viewTO c##loaderman;
用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
ALTER USER c##loaderman QUOTA UNLIMITED ON users;
创建角色
CREATE ROLE c##manager;
为角色赋予权限
GRANT create table, create view TO c##manager;
将角色赋予用户
GRANT c##manager TO c##loaderman;
DBA 可以创建用户和修改密码
用户本人可以使用 ALTER USER 语句修改密码
ALTER USER c##loadermanIDENTIFIED BY loaderman;
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
GRANT object_priv [(columns)] ON object TO {user|role|PUBLIC} [WITH GRANT OPTION];
分配对象权限
分配表 EMPLOYEES 的查询权限
分配表中各个列的更新权限
GRANT updateON system.departmentsTO c##loaderman
WITH GRANT OPTION和PUBLIC关键字
WITH GRANT OPTION 使用户同样具有分配权限的权利
GRANT select, insertON departmentsTO c##loadermanWITH GRANT OPTION;
向数据库中所有用户分配权限
GRANT selectON system.departmentsTO PUBLIC;
查询权限分配情况收回对象权限
使用 REVOKE 语句收回权限
使用 WITH GRANT OPTION 子句所分配的权限同样被收回
REVOKE {privilege [, privilege...]|ALL}ON objectFROM {user[, user...]|role|PUBLIC}[CASCADE CONSTRAINTS];REVOKE select, insertON departmentsFROM c##loaderman;
使用新建的用户连接数据库:
完
码上加油站
一起来加油
长按扫码关注
记得点个 赞 和 在看 哦!Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。