admin管理员组文章数量:1794759
Oracle数据库的权限管理(二)
目录
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权限,表示可以在任何用户模式中进行操作。
系统权限 | 功能 |
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 | 在任何用户模式中删除同义词 |
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)安全特性- 表安全
- 视图安全
- 过程安全
- 类型安全
版权声明:本文标题:Oracle数据库的权限管理(二) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686508387a75460.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论