Oracle数据库的权限管理(二)

发布于:2022-12-03 ⋅ 阅读:(448) ⋅ 点赞:(0)

目录

1.权限管理

(1)系统权限

(2)对象权限

2.系统权限管理

(1)系统权限的分类

①数据库维护权限及功能

②数据库模式对象权限

③ANY权限及功能

(2)系统权限的授予

①首先在“超级管理连接”下新建一个用户

②授予权限

③系统权限的收回 

(3)对象权限的管理

①对象权限分类

②对象权限授予

③对象权限收回

(4)安全特性


Oracle学习的相关知识点(汇总)

提示:关于新用户的创建相关的操作请看上面链接里面的《Oracle数据库系统安全管理(一)

1.权限管理

为了使新建的用户可以进行基本的数据库操作,如登录数据库,查询表,创建和删除表等操作,那么需要给该新用户授予相关的权限。并且可以将授予给用户的权限收回。

(1)系统权限

系统权限是指在系统级控制数据库的存取和使用的机制,即执行某种SQL语句的能力。 例如,启动、停止数据库,修改数据库参数,连接到数据库,以及创建、删除、更改模式对 象(如表、视图、索引、过程等)等权限。 系统权限是针对用户而设置的,用户必须被授予相应的系统权限才可以连接到数据库中进行 相应的操作。 在Oracle 11g中,SYSTEM和SYS是数据库管理员,具有DBA所有的系统权限。

(2)对象权限

对象权限是指在对象级控制数据库的存取和使用的机制,即访问其他用户模式对象的能力。 例如,用户可以存取哪个用户模式中的哪个对象,能对该对象进行查询、插入、更新操作等。 对象权限一般是针对用户模式对象的。对象权限是用户之间的表、视图等模式对象的相互存取权限。例如, 以用户“SCOTT”登录到数据库,可以查询该用户模式中的XSB表。 图8.10所示。但是,如果以用户“SYS”登录数据库,则不可以查询XSB表,因为XSB表不属于SYS用户。

2.系统权限管理

(1)系统权限的分类

--统计权限

SELECT COUNT(*)

        FROM SYSTEM_PRIVILEGE_MAP;        

--查看权限

SELECT *

        FROM SYSTEM_PRIVILEGE_MAP;       

提示:下面给出了一些权限的具体解释,只是方便看而已,读者也可以通过上面的语句在SQL PLus中查看。

①数据库维护权限及功能

数据维护权限及功能
系统权限 功能
ALTER DATABASE 修改数据库的结构
ALTER SYSTEM 修改数据库系统的初始化参数
DROP PUBULIC SYNONYM 删除公共同义词
CREATE PUBLIC SYSNONYM 创建公共同义词
CREATE PROFILE 创建资源配置文件
ALTER PROFILE 更改资源配置文件
DROP PROFILE 删除资源配置文件
CREATE ROLE 创建角色
ALTER ROLE 修改角色
DROP ROLE 删除角色
CREATE TABLESPACE 创建表空间
ALTER TABLESPACE 修改表空间
DROP TABLESPACE 删除表空间
MANAGE TABLESPACE 管理表空间
UNLMITED TABLESPACE 不受配额限制的使用表空间
CREATE SESSION 创建会话,允许用户连接到数据库
ALTER SESSION 修改用户会话
ALTER RESOURCE COST 更改配置文件中计算资源消耗的方式
RESTRICTED SESSION 在数据库处于受限会话模式下连接到数据
CREATE USER 创建用户
ALTER USER 更改用户
BECOME USER 当执行完全装入时,成为另一个用户
DROP USER 删除用户
SYSOPER

STARTUP 启动数据库

SHUTDOWN 关闭数据库

ALTER DATABASE MOUNT/OPEN 

ALTER DATABASE BACKUP CONTROFILE

ALTER DATABASE BEGINJEBID BACKUP

ALTER DATABASE ARCHIVELOG

RECOVER DATABASE

RESTRICTED SESSION

CREATE SPFILE/PFILE

SYSDBA(系统管理权限)

SYSOPER(的所有权限)

WITH ADMIN OPTION子句

SELECT ANY DICTIONARY 允许查询以“DBA”开头的数据字典

关于

STARTUP 启动数据库

SHUTDOWN 关闭数据库

ALTER DATABASE MOUNT/OPEN 

可以看这篇文章:关于Oracle中的关闭和启动数据库的几种方式(五)

②数据库模式对象权限

数据库模式对象权限
系统权限 功能
create cluster 在自己的模式中创建聚簇
drop cluster 删除自己模式中的聚簇
create procedure 在自己的模式中创建存储过程
drop procedure 在自己的模式中删除存储过程
create database link 创建数据库连接权限,通过数据库连接允许用户存取远程的数据库。
drop datebase link 删除数据库的连接
create synonym 创建私有同义词
drop synonym 删除同义词
create sequence 创建开发者所需的序列
create trigger 创建触发器
drop trigger 删除触发器
create table 创建表
drop table 删除表
create view 创建视图
drop view 删除视图
create type 创建对象

③ANY权限及功能

系统中的ANY权限,表示可以在任何用户模式中进行操作。

ANY权限及功能
系统权限 功能
analyze any 在任何模式中的任何表,聚簇或索引执行分析,查找其中的迁移记录和链接记录
create any cluster 在任何用户模式中创建聚簇
alter any cluster 在任何用户模式中修改聚簇
drop any cluster 在任何用户模式中删除聚簇
create any index 在数据库中任何表上创建索引
alter any index 在任何用户模式中更改索引
drop any index 在任何用户模式中删除索引
create any procedure 在任何用户模式中创建过程
alter any procedure 在任何用户模式中修改过程
drop any proceduer 在任何用户模式中删除过程
execute any procedure 在任何模式中执行或者引用过程
grant any privilege 将数据库中任何权限授予任何用户
alter any role 修改数据库中的任何角色
drop any role 删除数据库中的任何角色
grant any role 允许用户将数据库中的任何角色授予数据的其他用户
create any sequence 在任何模式中创建序列
alter any sequence 在任何模式中修改序列
drop any sequence 在任何模式中删除序列
select any sequence 允许使用任何模式中的序列
create any table 在任何模式中创建表
alter any table 在任何模式中更改表
drop any table 允许删除任何用户模式中的表
commit any table 在任何模式中为任何表,视图或者列添加注释
select any table 查询任何用户模式中基本表的记录
insert any table 允许向任何用户模式中的表插入记录
update any table 允许修改任何用户模式中的表记录
delete any table 允许删除任何用户模式中的表记录
lock any table 对任何用户模式中的表加锁
flashback any table 允许使用AS OF子句对任何模式中的表,视图执行一个SQL语句的闪回查询
create any view 在任何用户模式中创建视图
create any trigger 在任何用户模式中创建触发器
alter any trigger 在任何用户模式中修改触发器
drop any trigger 在任何用户模式中删除触发器
administer database trigger 允许ON DATABASE 触发器,在能够创建ON DATABASE 触发器之前,必须拥有CREATE TIRGGER 权限或者CREATE ANY TRIGGER权限。
create any synonym 在任何用户模式中创建专用同义词
drop any synonym 在任何用户模式中删除同义词

(2)系统权限的授予

GRANT <系统权限名称>TO {PUBLIC | <角色名> | <用户名>[,...N]}

        [WITH ADMIN OPTION]

提示:

这里的系统权限就是上面表中给出的一部分;

WITH ADMIN OPTION表示指定用户可以将这些权限授予该其他的用户。

①首先在“超级管理连接”下新建一个用户

用户名为:user1,密码为Admin123123,默认表空间为users,临时表空间为temp

CREATE USER user1
    IDENTIFIED BY Admin123123
    DEFAULT TABLESPACE USERS
    TEMPORARY TABLESPACE TEMP;

提示:上面新建的用户还没有授予什么权限,如果我们执行连接操作的话,那么系统会提示错误。

②授予权限

提示:这里首先给该用户授予会话的权限,暂时做连接。

GRANT CREATE SESSION TO user1; 

会话授予成功之后,连接测试:

现在授予该用户创建表和创建视图:

GRANT CREATE ANY TABLE,CREATE ANY VIEW
    TO user1
    WITH ADMIN OPTION;

create table demo(id int);

如果我这里向创建的表中插入数据,是不能的,还没有授权插入数据。

insert all
    into demo values(1)
    into demo values(2)
    into demo values(3)
    select * from dual;

③系统权限的收回 

REVOKE <系统权限名>FROM {PUBLIC | <角色名> | <用户名>[,...N]}

revoke create any table from user1;

如果试图再去创建表的话:

(3)对象权限的管理

①对象权限分类

  •  SELECT:读取表,视图,序列中的行;
  • UPDATE:更新表,视图和序列中的行;
  • DELETE:删除表,视图中的数据;
  • INSERT:向表和视图中插入数据;
  • EXECUTE:执行类型,函数,包和过程;
  • READ:读取数据字典中的数据;
  • INDEX:生成索引;
  • REFRENCES:生成外键;
  • ALTER:修改表,序列,同义词中的结构。

②对象权限授予

GRANT {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}

        ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}

        [WITH GRANT OPTION]

例子:给用户下面的demo表授予权限查询,插入,更新和删除数据。

GRANT SELECT,INSERT,UPDATE,DELETE

        ON demo

        TO user1

③对象权限收回

REVOKE {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}

        ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}

        [CASCADE CONSTRAINTS];

(4)安全特性

  • 表安全
  • 视图安全
  • 过程安全
  • 类型安全


网站公告

今日签到

点亮在社区的每一天
去签到