开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天,点击查看活动详情
10 数据库管理员
10.1 管理权限和角色
·介绍
这一部分我们主要看看oracle如何管理权限和角色,权限和角色的区别在那里。
当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统的权限;如果用户要访问其它方案的对象,则必须为其授予对象的权限,为了简化权限的管理,可以使用角色。
·权限
权限:是指执行特定类型sql命令或是访问其他方案对象的权利,包括系统权限和对象权限两种
权限分为:系统权限和对象权限
系统权限:大概140个
什么是系统(对象)权限
系统(对象)权限有哪些
如何赋给系统(对象)权限
10.1.1 管理权限和角色--系统权限
·系统权限介绍
系统权限是指执行特定类型sql命令的权利。它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限时,可以在其它方案中建表。当用户具有create any table权限时,可以在任何方案中建表。oracle提供了100多种系统权限。
常用的有:
create session
连接数据库
create table
建表
create view
建视图
create public synonym
建同义词
create procedure
建过程、函数、包
create trigger
建触发器
create cluster
建筑
·显示系统权限
oracle提供了100多种系统权限,而且oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system.privilege.map可以显示所有系统权限。
select * from system_privilege.map order by name;
·授予系统权限
一般情况,授予系统权限是由dba完成的,如果用其他用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限。在授予系统权限时,可以带有 with admin option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其它的用户或是角色。
举例说明:
1.创建两个用户ken ,tom 初始阶段他们没有任何权限,如果登录就会给出错误的信息
create user ken identified by ken
2.给用户ken授权
grant create session,create table to ken with admin option;
grant create view to ken
3.给用户tom授权
我们可以通过ken给tom授权,因为with admin option是加上的,当然也可以通过dba给tom授权,我们就用ken给tom授权;
grant create session,create table to tom;
grant create view to tom;->ok吗?[不o]
·回收系统权限
一般情况下,回收系统权限是dba来完成的,如果其它的用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成。
当回收了系统权限后,用户就不能执行相应的操作了,但是请注意,系统权限级联回收问题?【系统权限不是级联回收】
system------------>ken ------------>tom
(create session)(create session)(create session)
用system执行如下操作:
revoke create session from ken;
?请思考,tom还能登录吗?->[可以]