当前位置:文档之家› oracle管理权限和角色

oracle管理权限和角色

oracle管理权限和角色
oracle管理权限和角色

oracle管理权限和角色

介绍

这一部分主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里。

当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必需为其授予系统的权限;如果用户要访问其它方案的对象,则必需为其授予对象的权限,为了简化权限的管理,可以使用角色。

权限:

权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对角权限两种。

系统权限介绍

系统权限是指执行特定类型sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限时,可以在其方案中建表,当用户具有create any table权限时,可以在任何方案中建表。oracle提供了160多中系统权限。常用的有:

create session 连接数据库;

create view 建视图;

create procedure 建过程、函数、包;

create cluster 建簇;

create table 建表;

create public synonym 建同义词;

create trigger 建触发器;

显示系统权限

oracle提供了166系统权限,而且oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system_privilege_map,可以显示所有系统权限。

基本语法:

select * from system_privilege_map order by name;

oracle11GR2中提供了208个系统权限。

授予系统权限

一般情况,授予系统权限是有dba完成的,如果用其它用户来授予系统权限,则要求用户必需具有grant any privilege的系统权限在授予系统权限时,可以带有with admin option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其它的用户或是角色。为了让大家快速入门,我们举例说明:

1、创建两个用户ken,tom初始阶段他们没有任何权限,如果登陆就会出错误的信息。

1.1、创建两个用户,并指定密码。

SQL>create user ken identified by ken;

SQL>create user tom identified by tom;

2、给用户ken授权

2.1、授予create session和create table权限时带with admin option

授权基本语法:

grant 权限名称to 用户名;

SQL>grant create session to ken with admin option;

SQL>grant create table to ken with admin option;

2.2、授予create view时不带with admin option

SQL>grant create view to ken;

3、给用户tom授权

我们可以通过ken给tom授权,因为with admin option是加上的。当然也可以通过dba给tom授权,我们就用ken给tom授权:

SQL>grant create session to tom with admin option;

SQL>grant create table to tom with admin option;

SQL>grant create view to tom;//报错,由于ken被dba授权时没有带with admin option参数,所以ken没有权限对tom进行create view的授权。

回收系统权限

一般情况下,回收系统权限是dba来完成的,如果其它的用户来回收系统权限,要求该用户必需具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成,当回收了系统权限后,用户就不能执行相应的操作了,但是请注意,系统权限级联收回问题?(不会级联回收权限)

system==>>ken==>>tom

(create session)(create session)(create session)

用system执行如下操作:

revoke create session from ken;请思考tom还能登录吗?可以登录。

回收系统权限基本语法:

revoke 系统权限名from 用户名;

特别说明:系统权限的回收不是级联回收。

对象权限介绍

访问其它方案对象的权利,用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必需具有对象的权限,比如smith用户要访问scott.emp表(scott:方案,emp:表)

则必需在scott.emp表上具有对象的权限。常用的权限有:

alter 修改、delete 删除、select 查询、insert 添加、update 修改、index 索引、references 引用、execute 执行。

查看oracle提供的所有的对象权限(仅dba用户可以查看)

select distinct privilege from dba_tab_privs;

重要查询文档

查看当前用户的表(自己的表)

select table_name from user_tables;

查询oracle中所有的系统权限,一般是dba

select * from system_privilege_map order by name;

查询oracle中所有的角色,一般是dba

select * from dba_roles;

查询oracle中所有对象权限,一般是dba

select distinct privilege from dba_tab_privs;

查询数据库的表空间

select tablespace_name from dba_tablespaces;

查询当前用户具有什么样的系统权限

select * from user_sys_privs;

查询当前用户在别人的表上,具有什么样的对象权限

select * from user_tab_privs; (查看对表的权限)

select * from user_col_privs; (查看对表的列的权限)

查询某个用户具有怎样的角色

select * from dba_role_privs where grantee='用户名';

查看某个角色包括哪些系统权限。

select * from dba_sys_privs where grantee='DBA'; 或者是:

select * from role_sys_privs where role='DBA';

查看某个角色包括的对象权限

select * from dba_tab_privs where grantee='角色名';

当某个角色具有什么样的系统权限或对象权限,也可通过pl/sql developer工具直接查看即可。

显示执行的错误信息

在执行完语句后,就执行下面的语句

show error;

显示oracle某个操作用时

set timing on;

授权对象权限

在oracle9i前,授予对象权限是由对象的所有者来完成的,如果用其它的用户来操作,则需要用户具有相应的(with grant option)权限,从oracle9i开始,sys,system可以将任何对象上的对象权限授予其它用户,授予对象权限是用grant命令来完成的。

授权基本语法:

grant 对象权限on 数据库对象to 用户名[with grant option] [,角色名]

特别说明:可以把权限直接赋给用户或角色。[with grant option]选项只能授予用户,不能授予角色。

我们看几个案例:

1、monkey用户要操作scott.emp表,则必需授予相应的对象权限。

(1)、希望monkey可以查询scott.emp的表数据,怎样操作?

SQL>grant select on scott.emp to monkey;

(2)、希望monkey可以修改scott.emp的表数据,怎样操作?

SQL>grant update on scott.emp to monkey;

(3)、希望monkey可以删除scott.emp的表数据,怎样操作?

SQL>grant delete on scott.emp to monkey;

(4)、有没有更加简单的方法,一次把所有权限赋给monkey?

SQL>grant all on scott.emp to monkey;

2、授权alter权限

如果black用户修改scott.emp表的结构,则必需授予alter对象权限

SQL>grant alter on scott.emp to black;

3、授予execute权限

如果用户想要执行其它方案的包/过程/函数,则需有execute权限。比如为了让ken可以执行包dbms_transaction,可以授予execute权限。

SQL>grant execute on dbms_transaction to ken;

4、授予index权限

如果想在别的方案的表上建立索引,则必需具有index对象权限,如为了让black可以在scott.emp上建立索引,就给其index的对象权限

SQL>grant index on scott.emp to blake;

5、使用with grant option选项

该选项用于转授对象权限,但是该选项只能被授予用户,而不能授予角色。

例:由blake给jones授予select权限

先由dba给blake授予select权限

SQL>conn system/orcl;

SQL>grant select on scott.emp to blake with grant option;

SQL>conn blake/orcl;

SQL>grant select on scott.emp to jones;

回收对象权限

在oracle9i中,收回对象的权限可以由对象的所有者来完成,也可以用dba用户(sys,system)来完成。

这里要说明的是:收回对象权限后,用户就不能执行相应的sql命令,但是要注意的是对象的权限是否会被级联收回?(级联回收)

请看案例:

scott========>>blake========>>jones

select on emp select on emp select on emp

对象权限回收基本语法:

revoke 对象权限on 数据库对象from 用户名[,角色名];特别说明:对象的权限回收是级联回收。

1、切换system用户

SQL>conn system/orcl;

2、建立blake和jones用户

SQL>create user blake identified by blake;

SQL>create user jones identified by jones;

3、给blake和jones用户赋系统权限(登录权限)

SQL>grant create session to blake with admin option; SQL>grant create session to jones;

4、切换scott用户给blake赋对象权限(查看权限)

SQL>conn scott/tiger;

SQL>grant select on emp to blake with grant option;

5、切换blake用户给jones赋对象权限(查看权限)

SQL>conn blake/blake;

SQL>grant select on scott.emp to jones;

6、切换scott用户回收blake对象权限

SQL>conn scott/tiger;

SQL>revoke select on emp from blake;

7、切换blake用户测试查看对象权限是否还能用。

SQL>conn blake/blake;

SQL>select * from scott.emp;//报错,blake无查询权限。

8、切换jones用户测试查看对象权限是否还能用。

SQL>conn jones/jones;

SQL>select * from scott.emp;//报错,jones无查询权限。

管理权限和角色--角色

介绍

角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理。请看一个问题:假定有用户1,2,3为了让他们都拥有权限。

1、连接数据库

2、在scott.emp表上select,insert,update

如果采用直接授权操作,则需要进行12次授权。

角色分为预定义角色和自定义角色。

预定义角色

预定义角色是指oracle所提供的角色,每种角色都用于执行一些特定的管理任务,下面我们介绍常用的预定义角色connect,resource,dba

特别说明:角色可以包含系统权限,也可以包含对象权限。

要查看角色有怎样的权限可以通过下列语句查看:

select * from dba_sys_privs where grantee='DBA';

注意:查询时角色的名称要大写(DBA、CONNECT、RESOURCE),小写无法查询

使用system登录可以查询所有预定义角色:

select * from dba_roles;

如何知道某个用户具有什么样的角色:

select * from dba_role_privs where grantee='用户名';

通过角色给用户赋权限基本语法:

grant 角色名[,角色名2,...] to 用户名;

1、connect角色

connect角色具有一般应用开发人员需要的大部分权限,只要给用户授予connect和resource角色就够了,connect角色具有哪些系统权限呢?

connect角色具有:

create session 创建连接权限

2、resource角色

resource角色具有应用开发人员所需要的其它权限,比如建立存储过程、触发器等。这里需要注意的是resource 角色隐含了unlimited tablespace系统权限。

resource角色具有:

create trigger 创建触发器

create sequence 创建序列

create type 创建类型权限

create procedure创建过程

create cluster 创建集群

create operator 创建运营商

create indextype创建索引类型

create table 创建表

3、dba角色

dba角色具有所有的系统权限,及with admin option选项,默认的dba用户为sys和system他们可以将任何系统权限授予其它用户,但是要注意的是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库)

案例:

创建一个用户,然后赋给connect角色和resource角色

SQL>create user tempuser identified by tempuser;

SQL>grant connect,resource to tempuser;

创建一个用户jack并将其设为具有dba角色的用户

SQL>create user jack identified by jack;

SQL>grant dba to jack;

自定义角色

顾名思义就是自己定义的角色,根据自己的需要来定义,一般是dba来建立,如果使用别的用户来建立,则需要具有create role的系统权限。在建立角色时可以指定验证方式(不验证,数据库验证等)

1、建立角色(不验证)

如果角色是公用的角色,可以采用不验证的方式建立角色。

建立角色不验证基本语法:

create role 角色名not identified;

2、建立角色(数据库验证)

采用这样的方式时,角色名、口令存放在数据库中。当激活该角色时,必需提供口令。在建立这种角色时,需要为其提供口令。

建立角色需数据库验证基本语法:

create role 角色名identified by 口令;

角色授权

当建立角色时,角色没有任何权限,为了使得角色完成特定任务,必需为其授予相应的系统权限和对象权限。

(一)给角色授权

给角色授予权限和给用户授权没有太多区别,但是要注意,系统权限的unlimited tablespace和对象权限的with grant option选项是不能授予角色的。

给角色授权基本语法:

grant 对象权限on 数据库对象to 自定义角色名;

案例:

完成将create session,select on scott.emp,insert on scott.emp,update on scott.emp授予角色,然后将该角色授予a,b,c用户。

1、使用system用户创建自定义角色

SQL>conn system/orcl;

SQL>create role crud_scott not identified;

2、给自定义角色crud_scott授权

SQL>grant create session to crud_scott;

SQL>grant select on scott.emp to crud_scott;

SQL>grant insert on scott.emp to crud_scott;

SQL>grant update on scott.emp to crud_scott;

3、通过将授权过的角色crud_scott给用户进行授权

SQL>grant crud_scott to a;

SQL>grant crud_scott to b;

SQL>grant crud_scott to c;

(二)分配角色给某个用户

一般分配角色是由DBA来完成的,如果要以其它用户身份分配角色,则要求用户必需具有grant any role的系统权限。

通过角色名授权用户基本语法:

grant 角色名to 用户名[with admin option];

如果给用户赋权限时带了with admin option选项,被授权的用户可以继续将此权限授予其它用户。

删除角色

使用drop role,一般是dba来执行,如用其它用户则要求该用户具有drop any role系统权限

删除角色基本语法:

drop role 角色名;

显示角色信息

1、显示所有角色

select * from dba_roles;

2、显示角色具有的系统权限

select privilege,admin_option from role_sys_privs where role='角色名';

3、显示角色具有的对象权限

通过查询数据字典视图dba_tab_privs可以查看角色具有的对象权限或是列的权限。

select * from dba_tab_privs where grantee='角色名';

4、显示用户具有的角色,及默认角色

当以用户的身份连接到数据库时,oracle会自动的激活默认的角色,通过查询数据库字典视图dba_role_privs 可以显示某个用户具有的所有角色及当前默认的角色

select granted_role,default_role from dba_role_privs where grantee='角色名';

精细访问控制(只做了解,不详细介绍)

是指用户可以使用函数、策略实现更加细微的案例访问控制。如果使用精细访问控制,则当在客户端发出sql语句(select,insert,update,delete)时,oracle会自动在sql语句后追加谓语(where子句),并执行新的sql语句。通过这样的控制,可以使得不同的数据库用户在访问相同的表时,返回不同的数据信息。使用函数或策略是为了更好的保护数据安全性,为不同权限的用户提供不同的安全级别,可有效的保障信息安全。

oracle创建用户及权限说明文档

Oraclec创建用户 一、命令行创建用户具体步骤如下: 1.以管理员身份登录系统并创建一个新的表空间,操作如下: 操作如下: 2. Next 5M maxsize 100M ;----每次扩大5M,但最大为100M

3. Temporary tablespace test1_temp; ----设置临时表空间为test1_temp 4. 操作如下 5. 操作如下 6.最后提交即可。Commit 二、表空间的增删改查 1. 2. 如下操作,其中标示出来的路径即为查询到的要更改的表空间的具体路径,将该路径加到语句2中的单引号处即可。

3. 4.

四、权限的设置 1.权限的分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 2.系统权限管理 DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE: 拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT: 拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 3.系统权限授权命令及用户管理。 [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys 用户相同的权限,system用户的权限也可以被回收。] 例: SQL> connect system/manager SQL> Create user user50 identified by user50; SQL> grant connect, resource to user50; 查询用户拥有哪里权限: SQL> select * from dba_role_privs; SQL> select * from dba_sys_privs; SQL> select * from role_sys_privs; 删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除。 4.给新建的用户分配只有连接以及对某些表和视图的查询权限: oracle授权对视图的查询.docx 5.用户管理: 1)、创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数 PASSWORD_LOCK_TIME 5 //指定用户被锁定天数 PASSWORD_LIFE_TIME 30 //指定口令可用天数 2)、创建用户 SQL> Create User username Identified by password Default Tablespace tablespace Temporary Tablespace tablespace Profile profile Quota integer/unlimited on tablespace; 6.用户密码过期问题: 首先,查看系统中有哪些用户:

【VIP专享】Oracle权限、角色和用户

Oracle数据库权限、角色和用户总结 前言: ORACLE数据库系统预先定义了CONNECT 、RESOURCE、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。 CONNECT具有创建表、视图、序列等特权;(alter session create cluster ) RESOURCE具有创建过程、触发器、表、序列等特权、 DBA具有全部系统特权; EXP_FULL_DATABASE、IMP_FULL_DATABASE具有卸出与装入数据库的特权。 权限管理 一、权限分类 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 二、系统权限管理: 1、系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 2、系统权限授权命令: [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。] 例:

oracle权限及角色

角色是相关权限的集合,使用角色能够简化权限的管理。简而言之就是oracle 可以事先把一系列权限集中在一起(角色),打包赋予给用户,那么用户就具有了角色的一系列权限。 oracle预定义角色有25种,它是oracle提供的角色。经常用到的角色有connect、resource、dba三种角色。建一个用户,多数情况下,只要给用户赋予connect和resource角色就够了。 connect角色具有一般应用开发人员需要的大部分权限,connect角色具有的系统权限如下: alter session create cluster create database link create session create table create view create sequence resource角色具有开发人员需要的其他权限,如建立存储过程、触发器等,resource角色等,resource角色隐含了unlimited tablespace系统权限(无限制表空间),resource的系统权限有: create cluster

create indextype create table create sequence create type create procedure create trigger dba角色具有所有系统权限及with admin option选项,默认dba用户为sys和system,它们可以将任何系统权限授予给其他用户。但是dba角色不具备sysdba 和sysoper的权限,即启动和关闭数据库。 select*from tab; --查询所有的用户 select*from dba_users; --查询所有的角色 select*from dba_roles; -- 权限有140多种,要赋值给用户,使用sql grant sql语句,太麻烦,产生角色概念(23种角色),先把权限赋值给角色,比如说connect

oracle常用权限语句

oracle 用户创建及权限设置 权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> conn / as sysdba; SQL>create user username identified by password SQL> grant dba to username; SQL> conn username/password SQL> select * from user_sys_privs; 我们将从创建 Oracle 用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对 Oracle 用户权限表有个深入的了解。 一、创建 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二、登陆sqlplus / as sysdba;// 登陆sys帐户sqlplus sys as sysdba;// 同上 sqlplus scott/tiger;//登陆普通用户scott sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott 三、管理用户 create user zhangsan;//在管理员帐户下,创建用户zhangsan alter user scott identified by tiger;//修改密码

四,授予权限 1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限 /*管理员授权*/ grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限 grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限 grant create table to zhangsan;//授予创建表的权限 grante drop table to zhangsan;//授予删除表的权限 grant insert table to zhangsan;//插入表的权限 grant update table to zhangsan;//修改表的权限 grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public) 2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权 /*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/ grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限 grant drop on tablename to zhangsan;//授予删除表的权限 grant insert on tablename to zhangsan;//授予插入的权限 grant update on tablename to zhangsan;//授予修改表的权限 grant insert(id) on tablename to zhangsan; grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限 五、撤销权限 基本语法同grant,关键字为revoke 六、查看权限 select * from user_sys_privs;//查看当前用户所有权限 select * from user_tab_privs;//查看所用用户对表的权限 七、操作表的用户的表 /*需要在表名前加上用户名,如下*/ select * from zhangsan.tablename 八、权限传递 即用户A将权限授予B,B可以将操作的权限再授予C,命令如下: grant alert table on tablename to zhangsan with admin option;//关键字 with admin option grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似 九、角色 角色即权限的集合,可以把一个角色授予给用户 create role myrole;//创建角色

ORACLE数据库用户与权限管理

ORACLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。 2.1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。 建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。 2.2 用户管理 ORACLE用户管理的内容主要包括用户的建立、修改和删除用户的建立

2.3系统特权管理与控制 ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。 授予系统特权 回收系统特权 显示已被授予的系统特权(某用户的系统级特权) 2.4 对象特权管理与控制 ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。 授予对象特权

//级联授权 回收对象特权 显示已被授予的全部对象特权 2.5 角色的管理 ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。 ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。 通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。 授予用户角色

oracle权限全集

oracle权限全集 alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任意序列的权限 alter any snapshot 修改任意快照的权限 alter any table 修改任意表的权限 alter any trigger 修改任意触发器的权限 alter cluster 修改拥有簇的权限 alter database 修改数据库的权限 alter procedure 修改拥有的存储过程权限 alter profile 修改资源限制简表的权限 alter resource cost 设置佳话资源开销的权限 alter rollback segment 修改回滚段的权限 alter sequence 修改拥有的序列权限 alter session 修改数据库会话的权限 alter sytem 修改数据库服务器设置的权限 alter table 修改拥有的表权限 alter tablespace 修改表空间的权限 alter user 修改用户的权限 analyze 使用analyze命令分析数据库中任意的表、索引和簇audit any 为任意的数据库对象设置审计选项 audit system 允许系统操作审计

backup any table 备份任意表的权限 become user 切换用户状态的权限 commit any table 提交表的权限 create any cluster 为任意用户创建簇的权限 create any index 为任意用户创建索引的权限 create any procedure 为任意用户创建存储过程的权限create any sequence 为任意用户创建序列的权限create any snapshot 为任意用户创建快照的权限create any synonym 为任意用户创建同义名的权限create any table 为任意用户创建表的权限 create any trigger 为任意用户创建触发器的权限create any view 为任意用户创建视图的权限 create cluster 为用户创建簇的权限 create database link 为用户创建的权限 create procedure 为用户创建存储过程的权限 create profile 创建资源限制简表的权限 create public database link 创建公共数据库链路的权限create public synonym 创建公共同义名的权限 create role 创建角色的权限 create rollback segment 创建回滚段的权限 create session 创建会话的权限 create sequence 为用户创建序列的权限

Oracle用户权限管理 通过 SQL plus

sys 整个数据库网络的管理员最高权限 system 本地数据库管理员 scott 普通用户 创建用户(hong12345): create user hong12345 identified by hong12345 系统授权: grant create session to hong12345; 登录窗口 grant create table to hong12345; 创建表 grant unlimited tablespace to hong12345; 使用表空间 撤销权限: revoke create table from hong12345; rovoke unlimited tablespace from hong12345; 查看用户权限: 提供系统信息的视图Oracle中称数据字典查看当前用户系统权限select * from user_sys_prives; 创建用户(xiaobei) create user xiaobeiindentified by xiaobei create table myxiaobei(id int); insert into myxiaobei(1);

commit;//必须手动提交 对象权限 一个用户访问另外一个用户的表(如hong12345 访问xiaobei) grant select on myxiaobei to hong12345;(将表myxiaobei查询权限给hong12345)grant inert on myxiaobei to hong12345; grant all on myxiaobei to hong12345; select * from user_tab_privs;(查询对象权限) select * from user_col_privs;(查询对象列权限); 对象权限可以控制到列的权限 grant update(name)on myxiaobei to hong12345 grant insert(id)on myxiaobei to hong12345; 撤销; revoke all on myxiaobei from hong12345; 权限传递: sys--》hong12345--》xiaobei sys:grant alter any table to hong12345 with admin option;

oracle 查看用户、权限、角色

查看用户、权限、角色的命令和视图 a 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户系统权限: select * from dba_sys_privs; select * from session_privs; select * from user_sys_privs; 3.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 4.查看所有角色: select * from dba_roles; 5.查看用户所拥有的角色: select * from dba_role_privs; select * from user_role_privs; b 概述 与权限,角色相关的视图大概有下面这些: DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 查询当前用户所拥有的系统权限 SESSION_PRIVS: 查询当前用户所拥有的全部权限 ROLE_SYS_PRIVS:查询某个角色所拥有的系统权限 注意: 要以SYS用户登陆查询这个视图,否则返回空. ROLE_ROLE_PRIVS: 当前角色被赋予的角色 SESSION_ROLES: 当前用户被激活的角色 USER_ROLE_PRIVS: 当前用户被授予的角色 另外还有针对表的访问权限的视图: TABLE_PRIVILEGES ALL_TAB_PRIVS ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限 oracle与用户角色权限相关的视图 Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图. 一. 概述 与权限,角色相关的视图大概有下面这些: 1、DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限。 2、USER_SYS_PRIVS: 查询当前用户所拥有的系统权限。

Oracle用户权限表的管理方法

我们将通过介绍命令的方式,谈谈Oracle用户权限表的管理方法,希望对大家有所帮助。 我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle用户权限表有个深入的了解。 一、创建 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二、登陆 sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott 三、管理用户 create user zhangsan;//在管理员帐户下,创建用户zhangsan alert user scott identified by tiger;//修改密码 create user zhangsan;//在管理员帐户下,创建用户zhangsan alert user scott identified by tiger;//修改密码 四,授予权限 1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限

/*管理员授权*/ grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限 grant create table to zhangsan;//授予创建表的权限 grante drop table to zhangsan;//授予删除表的权限 grant insert table to zhangsan;//插入表的权限 grant update table to zhangsan;//修改表的权限 grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public) /*管理员授权*/ grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限 grant create table to zhangsan;//授予创建表的权限 grante drop table to zhangsan;//授予删除表的权限 grant insert table to zhangsan;//插入表的权限 grant update table to zhangsan;//修改表的权限 grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public) 2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权/*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/ grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限 grant drop on tablename to zhangsan;//授予删除表的权限 grant insert on tablename to zhangsan;//授予插入的权限 grant update on tablename to zhangsan;//授予修改表的权限 grant insert(id) on tablename to zhangsan;

如何查看oracle用户具有的权限和角色

如何查看oracle用户具有的权限和角色 上次有同学问我,如何查看一个oracle用户具有的权限和角色,我一时没答上来,回头好好研究了一下,记录一下,备查: 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限 sql>select * from role_sys_privs; 4.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 5.查看所有角色: select * from dba_roles; 6.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs; 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限) select * from V$PWFILE_USERS 比如我要查看用户wzsb的拥有的权限: SQL> select * from dba_sys_privs where grantee='WZSB';

GRANTEE PRIVILEGE ADMIN_OPTION ------------------------------ ---------------------------------------- ------------ WZSB CREATE TRIGGER NO WZSB UNLIMITED TABLESPACE NO 比如我要查看用户wzsb的拥有的角色: SQL> select * from dba_role_privs where grantee='WZSB'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE ------------------------------ ------------------------------ ------------ ------------ WZSB DBA NO YES 查看一个用户所有的权限及角色 select privilege from dba_sys_privs where grantee='WZSB' union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='WZSB' );

Oracle用户角色权限等操作

oracle 赋予权限 转发评论 02月21日13:00 最基础的sqlplus username/password@[sid] 连接数据库 sqlplus username/password as sysdba 以管理员连接数据库 管理员连接后创建用户sqlplus system/manager@demo as sysdba create user abc identified by abc ; 创建用户abc密码为abc grant all privileges to abc; 给abc用户赋予所有的权限 给自己留个备份以备不时之需 oracle grant 授权语句--select * from dba_users; 查询数据库中的所有用户 --alter user USERNAME account lock; 锁住用户 --alter user USERNAME account unlock; 给用户解锁 --create user USERNAME identified by USERPASS; 建立用户 一般创建用户后需要授予链接数据库权限 grant connect,resource to USERNAME; --grant create tablespace to USERNAME; 授权创建表空间 --grant SELECT on TABLENAME to USERNAME; 授权查询 授权其他动作格式相同 如果要把所有表的查询权限分配给用户可以用这样的 grant select any table to USERNAME; --grant execute on procedure1 to xujin 授权存储过程

关于oracle 用户去DBA权限的管理

为了规范数据库用户的操作,特制订如下规范: 一、每个系统建立自己的数据库文件和索引文件,每个文件不允许超过2G,不支持自动扩展,系统根据自己的情况申请相应大小的数据文件; 创建文件系统的命令为: (1)创建表空间 Create tablespace coredb_data logging datafile '/home/oracle/oracle/product/10.2.0/oradata/orcl/coredb_data01.dbf' size 2G autoextend off (2)创建索引空间 Create tablespace coredb_idx logging datafile '/home/oracle/oracle/product/10.2.0/oradata/orcl/coredb_idx01.dbf' size 1G autoextend off (3)增扩表空间 alter tablespace coredb_idx add datafile '/home/oracle/oracle/product/10.2.0/oradata/orcl/coredb_idx02.dbf' size 2G autoextend off (4)查看表空间 select dbf.tablespace_name, dbf.totalspace "总量(M)", dbf.totalblocks as 总块数, dfs.freespace "剩余总量(M)", dfs.freeblocks "剩余块数", (dfs.freespace / dbf.totalspace) * 100 "空闲比例" from (select t.tablespace_name, sum(t.bytes) / 1024 / 1024 totalspace, sum(t.blocks) totalblocks from dba_data_files t group by t.tablespace_name) dbf, (select tt.tablespace_name, sum(tt.bytes) / 1024 / 1024 freespace, sum(tt.blocks) freeblocks from dba_free_space tt group by tt.tablespace_name) dfs where trim(dbf.tablespace_name) = trim(dfs.tablespace_name) 二、创建用户的命令 使用ORACLE用户执行如下命令(无DBA权限): sqlplus '/as sysdba' < cascade; create user identified by default tablespace coredb_data temporary tablespace temp;

推荐下载-oracle管理权限 精品

Oracle用户权限管理

●系统的默认用户 # sys;//系统管理员,拥有最高权限 # system;//本地管理员,次高权限 # scott;//普通用户,密码默认为tiger,默认未解锁 ●登陆 # sqlplus / as sysdba;//登陆sys帐户 # sqlplus sys as sysdba;//同上 # sqlplus scott/tiger;//登陆普通用户scott ●管理用户 # create user zhangsan;//在管理员帐户下,创建用户zhangsan # alert user scott identified by tiger;//修改密码

授予权限 1、默认的普通用户scott默认未解锁,不能进行那个使 用,新建的用户也没有任何权限,必须授予权限 # # grant create session to zhangsan;//授予zhangsan 用户创建session的权限,即登陆权限 # grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限 # grant create table to zhangsan;//授予创建表的权限 # grante drop table to zhangsan;//授予删除表的权限 # grant insert table to zhangsan;//插入表的权限 # grant update table to zhangsan;//修改表的权限 # grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public) 2、oralce对权限管理比较严谨,普通用户之间也是默认 不能互相访问的,需要互相授权 #

oracle用户及权限管理

实验三安全管理 【开发语言及实现平台或实验环境】 Oracle10g 【实验目的】 练习创建用户、用户的授权、创建角色、将角色授权给用户等安全管理命令 【实验原理】 一、用户管理 1创建用户 基本语法: CREATE USER user_name IDENTIFIED [BY password|EXTERNALL Y|GLOBALL Y AS 'external_name'] [DEFAULT TABLESPACE tablespace_name] [TEMPORARY TABLESPACE temp_tablesapce_name] [QUOTA n K|M|UNLIMITED ON tablespace_name] [PROFILE profile_name] [PASSWORD EXPIRE] [ACCOUNT LOCK|UNLOCK]; 注意:在创建新用户后,必须为用户授予适当的权限。例如,授予用户CREATE SESSION 权限后,用户才可以连接到数据库。 参数说明: user_name:用于设置新建用户名,在数据库中用户名必须是唯一的; IDENTIFIED:用于指明用户身份认证方式; BY password:用于设置用户的数据库身份认证,其中password为用户口令;EXTERNALL Y:用于设置用户的外部身份认证; GLOBALL Y AS'external_name':用于设置用户的全局身份认证,其中external_name为Oracle 的安全管理服务器相关信息; DEFAULT TABLESPACE:用于设置用户的默认表空间,如果没有指定,Oracle将数据库默认表空间作为用户的默认表空间; TEMPORARY TABLESPACE:用于设置用户的临时表空间; QUOTA:用于指定用户在特定表空间上的配额,即用户在该表空间中可以分配的最大空间;PROFILE:用于为用户指定概要文件,默认值为DEFAULT,采用系统默认的概要文件;PASSWORD EXPIRE:用于设置用户口令的初始状态为过期,用户在首次登录数据库时必须修改口令; ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁定; ACCOUNT UNLOCK:用于设置用户初始状态为不锁定或解除用户的锁定状态。 实例: 创建一个用户user3,口令为user3,默认表空间为USERS,在该表空间的配额为10 MB,

oracle角色权限详解

每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。 数据库系统权限(Database System Privilege)允许用户执行特定的命令集。例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE 权限允许用户授予任何系统权限。 数据库对象权限(Database Object Privilege)使得用户能够对各个对象进行某些操作。例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。 一、创建用户 Oracle内部有两个建好的用户:SYSTEM和SYS。用户可直接登录到SYSTEM 用户以创建其他用户,因为SYSTEM具有创建别的用户的权限。在安装Oracle 时,用户或系统管理员首先可以为自己建立一个用户。例如: create user user01 identified by u01; (上面user01是创建的用户u01是密码) 该命令还可以用来设置其他权限,详细情况参见自学资料。要改变一个口令,可以使用alter user命令: alter user user01 identified by usr01; 现在user01的口令已由“u01”改为“usr01”。 除了alter user命令以外,用户还可以使用password命令。如果使用password命令,用户输入的新口令将不在屏幕上显示。有dba特权的用户可以通过password命令改变任何其他用户的口令;其他用户只能改变自己的口令。 当用户输入password命令时,系统将提示用户输入旧口令和新口令,如下所示: password Changing password for user01 Old password: New password: Retype new password:

oracle权限大全

Oracle权限笔记 一、系统的默认用户 1.sys;//系统管理员,拥有最高权限 2.system;//本地管理员,次高权限 3.scott;//普通用户,密码默认为tiger,默认未解锁 二、登陆 1.sqlplus / as sysdba;//登陆sys帐户 2.sqlplus sys as sysdba;//同上 3.sqlplus scott/tiger;//登陆普通用户scott 三、管理用户 1.create user zhangsan;//在管理员帐户下,创建用户zhangsan 2.alert user scott identified by tiger;//修改密码 四,授予权限 1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限 2、/*管理员授权*/ 3、grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限 4、grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限 5、grant create table to zhangsan;//授予创建表的权限 6、grante drop table to zhangsan;//授予删除表的权限

7、grant insert table to zhangsan;//插入表的权限 8、grant update table to zhangsan;//修改表的权限 9、grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public) oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权 1./*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/ 2.grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限 3.grant drop on tablename to zhangsan;//授予删除表的权限 4.grant insert on tablename to zhangsan;//授予插入的权限 5.grant update on tablename to zhangsan;//授予修改表的权限 6.grant insert(id) on tablename to zhangsan; 7.grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update 8.grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限 五、撤销权限 基本语法同grant,关键字为revoke 六、查看权限 1.select * from user_sys_privs;//查看当前用户所有权限 2.select * from user_tab_privs;//查看所用用户对表的权限 七、操作表的用户的表 1./*需要在表名前加上用户名,如下*/

相关主题
文本预览
相关文档 最新文档