Oracle 管理对象权限

合集下载

oracle的grant用法

oracle的grant用法

oracle的grant用法GRANT是一个Oracle数据库的SQL命令,用于向用户或角色授予特定的系统权限或对象权限。

语法如下:GRANT privilege_name [, privilege_name]...TO user_name [, user_name]...[WITH ADMIN OPTION][ROLE role_name [, role_name]...];其中,- privilege_name 表示要授予的权限,可以是一个或多个权限,例如SELECT、INSERT、UPDATE、DELETE等。

- user_name 表示要授予权限的用户,可以是一个或多个用户,例如SCOTT、HR等。

- WITH ADMIN OPTION表示授予权限的用户能够将这些权限再授予给其他用户。

- ROLE role_name表示要授予的角色,可以是一个或多个角色。

以下是一些示例:1. 授予用户SCOTT对表EMP的SELECT权限:GRANT SELECT ON EMP TO SCOTT;2. 授予用户HR对表DEPT的SELECT和INSERT权限,并允许其将这些权限再授予其他用户:GRANT SELECT, INSERT ON DEPT TO HR WITH ADMINOPTION;3. 授予角色MANAGER对表EMP的SELECT权限,并授予用户SCOTT该角色:GRANT SELECT ON EMP TO MANAGER;GRANT MANAGER TO SCOTT;4. 授予用户SYSDBA管理员权限:GRANT SYSDBA TO SYS;5. 授予用户DBA所有系统权限:GRANT ALL PRIVILEGES TO DBA;以上只是GRANT命令的一些常见用法示例,实际应用中可以根据具体需求灵活使用。

oracle数据库管理人员权限设置及分配表

oracle数据库管理人员权限设置及分配表

一、概述Oracle数据库是当前企业中常用的数据库管理系统之一,而数据库管理人员在企业中扮演着至关重要的角色,他们负责数据库的管理与维护,包括权限设置与分配。

本文将探讨Oracle数据库管理人员权限设置及分配表的相关内容。

二、数据库管理员的权限1. 数据库管理员(DBA)是Oracle数据库中最高权限的用户,具有对数据库进行全面控制的特权。

他们可以创建、修改、删除数据库对象,分配SQL权限,管理数据库用户和角色等。

2. DBA用户的权限通常由系统管理员在安装数据库时创建,或是通过GRANT命令授予。

3. DBA用户可以通过GRANT和REVOKE命令控制其他用户的权限,以及管理数据库对象的安全性。

三、数据库操作员的权限1. 数据库操作员(DBO)是在数据库中具有一定权限的用户,通常负责对数据库进行日常操作。

2. DBO用户可以执行SELECT、INSERT、UPDATE、DELETE等操作,并且可以创建临时表和视图。

3. DBO用户的权限通常由DBA用户通过GRANT命令分配,可以根据需要灵活控制其权限范围。

四、权限设置的最佳实践1. 了解业务需求:在设置数据库用户的权限之前,需要充分了解企业的业务需求,确保每个用户都能够在权限范围内完成工作。

2. 分配最小权限原则:根据最小权限原则,应该仅分配用户所需的最低权限,以降低数据泄露和操作错误的风险。

3. 定期审计权限:定期对数据库用户的权限进行审计,及时发现和修复不合理的权限设置,保障数据库的安全性。

五、权限分配表的编制数据库管理人员需要编制一份权限分配表,清晰地记录每个用户的权限范围,确保权限设置的合理性与一致性。

权限分配表通常包括以下内容:1. 用户名称:列出数据库中所有的用户名称。

2. 权限说明:对用户的权限进行详细说明,包括SELECT、INSERT、UPDATE、DELETE等操作的权限范围。

3. 是否受限:记录是否对用户的权限进行了限制,比如是否禁止用户执行DROP TABLE等危险操作。

Oracle 权限设置

Oracle 权限设置

一、权限分类:系统权限:系统规定用户使用数据库的权限。

(系统权限是对用户而言)。

实体权限:某种权限用户对其它用户的表或视图的存取权限。

(是针对表或视图而言的)。

二、系统权限管理: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用户的权限也可以被回收。

]例:SQL> connect system/managerSQL> 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则将用户连同其创建的东西全部删除3、系统权限传递:增加WITH ADMIN OPTION选项,则得到的权限可以传递。

oracle赋权方法

oracle赋权方法

oracle赋权方法Oracle是一种关系型数据库管理系统,它提供了一种灵活且安全的赋权机制,可以控制用户对数据库对象的访问权限。

本文将介绍Oracle中常用的赋权方法。

1. 创建用户和角色:在Oracle中,可以使用CREATE USER语句创建用户,并使用CREATE ROLE语句创建角色。

用户可以拥有角色,而角色可以拥有权限。

创建用户和角色的语法如下:```CREATE USER username IDENTIFIED BY password; CREATE ROLE role;```2. 授权角色权限:可以使用GRANT语句将权限授予角色。

例如,将SELECT权限授予角色read_role:```GRANT SELECT ON table_name TO read_role;```3. 授权用户角色:可以使用GRANT语句将角色授予用户。

例如,将read_role角色授予用户username:```GRANT read_role TO username;```4. 授予用户直接权限:可以使用GRANT语句将权限直接授予用户。

例如,将SELECT权限直接授予用户username:```GRANT SELECT ON table_name TO username;```5. 撤销角色权限:可以使用REVOKE语句撤销角色的权限。

例如,撤销read_role角色的SELECT权限:```REVOKE SELECT ON table_name FROM read_role;```6. 撤销用户角色:可以使用REVOKE语句撤销用户的角色。

例如,撤销用户username的read_role角色:```REVOKE read_role FROM username;```7. 撤销用户直接权限:可以使用REVOKE语句撤销用户的直接权限。

例如,撤销用户username的SELECT权限:```REVOKE SELECT ON table_name FROM username;```8. 查看用户权限:可以使用SELECT语句查询用户拥有的权限。

Oracle 10g教程2

Oracle 10g教程2

CJ制作
Oracle权限管理
如果回收小明权限,其小红权限是否被回收?
CJ制作
Oracle角色管理
角色:
一系列权限的集合。通过角色可以实现对用户的间接赋权。 简化数据库权限的管理
分为两类:
预定义
数据库创建时由系统自动创建的一些常用角色 授予用户角色使用grant语句 常用角色: –Connect –Dba –Resource –… 可以通过dba_roles查看数据库所有预定义角色
对象权限
指对某个特定的数据库对象执行某种操作的权限 –如:对表的增删改查等操作
权限授予有两种方式
直接授权 间接授权
CJ制作
Oracle权限管理-系统权限
系统权限
一类为对数据库某一类对象的操作能力,多带有ANY关 键字
如索引:create any index.drop any index.alter any index 其他如:存储过程、角色、表、触发器、视图等。操作方式与 索引相同
Oracle 10g数据库(二) 10g数据库(二)
CJ制作
内容介绍
掌握Oracle用户管理 掌握Oracle权限管理 掌握Oracle角色管理 掌握Oracle用户口令管理 会使用OEM对用户进行管理
CJ制作
oracle用户管理
Oracle安装成功后,默认2个DBA用户 Oracle管理员用户
Sql>drop profile aaa/bbb [cascade]
CJ制作
Oracle 10g企业管理器-OEM
使用OEM进行安全管理
一个图形化管理工具,该工具利用IE浏览器与服务器 进行交互 此工具可以对数据库进行管理和维护 URL:http://服务器名称:1158/em

Oracle用户、对象权限、系统权限

Oracle用户、对象权限、系统权限

--Oracle‎用户、对象权限、系统权限--================================一、用户与模式用户:对数据库的访‎问,需要以适当用‎户身份通过验‎证,并具有相关权‎限来完成一系‎列动作SYS用户,缺省始终创建‎,且未被锁定,拥有数据字典‎及其关联的所‎有对象SYSTEM‎用户,缺省始终创建‎,且未被锁定,可以访问数据‎库内的所有对‎象模式(schema‎):是某个用户拥‎有所有对象的‎集合。

具有创建对象‎权限并创建了‎对象的用户称‎为拥有某个模‎式注意:创建数据库对‎象(视图,表等)的任一用户都‎拥有一个以该‎用户名称开头‎的模式,且被视为模式‎用户二、创建及修改用‎户条件:需要具有创建‎用户的权限,如sys,system‎,sysdba‎,dba role等语法:CREATE‎USER userIDENTI‎F IED {BY passwo‎r d | EXTERN‎A LLY | GLOBAL‎L Y AS extern‎a l name } [DEFAUL‎T TABLES‎P ACE tables‎p ace_n‎a me][TEMPOR‎A RY TABLES‎P ACE tables‎p ace_n‎a me][QUOTA {n {[K|M] | UNLIMI‎T ED } ON tables‎p ace_n‎a meQUOTA {n {[k|M] | UNLIMI‎T ED } ON tables‎p ace_n‎a me ... ][PASSWO‎R D EXPIRE‎][ACCOUN‎T { LOCK | UNLOCK‎}][PROFIL‎E { profil‎e_name‎| DEFAUL‎T }]eg:CREATE‎USER robins‎o n IDENTI‎F IED BY tiger;--省略了DEF‎AULT TABLES‎P ACE和T‎E MPORA‎R Y TABLES‎P ACE 时,则由data‎base_p‎r opert‎i es中对应‎的参数确定SQL>SELECT‎proper‎t y_nam‎e,proper‎t y_val‎u e FROMdataba‎s e_pro‎p ertie‎s WHERE proper‎t y_nam‎e LIKE'DEFAUL‎T%';PROPER‎T Y_NAM‎E PROPER‎T Y_VAL‎U E--------------------------------------------------------------------------------DEFAUL‎T_TEMP‎_TABLE‎S PACE TEMPDEFAUL‎T_PERM‎A NENT_‎T ABLES‎P ACE USERSDEFAUL‎T_TBS_‎T YPE SMALLF‎I LE更多关于表空‎间的请参考:Oracle‎表空间与数据‎文件1.修改用户修改用户的语‎法同创建用户‎,仅仅讲关键字‎c reate‎替换为alt‎er,alter user可以‎修改除用户名‎之外的任一属‎性ALTER USER robins‎o n ACCOUN‎T LOCK;2.修改密码DBA 可以创建用户‎和修改密码用户本人可以‎使用ALTE‎R USER 语句修改密码‎SQL>ALTER robins‎o n IDENTI‎F IED BY newpas‎s word;3.删除用户:DROP USER userna‎m e [CASCAD‎E]CASECA‎D E 连同用户创建‎的对象一并删‎除,如果该用户创‎建了对象,要加CASC‎ADE删除,否则删除不掉‎另外,不能删除当前‎正在与ORA‎C LE服务器‎相连的用户。

Oracle创建用户、角色、授权、建表

Oracle创建用户、角色、授权、建表

Oracle创建⽤户、⾓⾊、授权、建表Oracle创建⽤户、⾓⾊、授权、建表Devin01213 2019-05-16 10:21:49 21510 收藏 32分类专栏: Oracle版权oracle数据库的权限系统分为系统权限与对象权限。

系统权限( database system privilege )可以让⽤户执⾏特定的命令集。

例如,create table权限允许⽤户创建表,grant any privilege 权限允许⽤户授予任何系统权限。

对象权限( database object privilege )可以让⽤户能够对各个对象进⾏某些操作。

例如delete权限允许⽤户删除表或视图的⾏,select权限允许⽤户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。

每个oracle⽤户都有⼀个名字和⼝令,并拥有⼀些由其创建的表、视图和其他资源。

oracle⾓⾊(role)就是⼀组权限(privilege)(或者是每个⽤户根据其状态和条件所需的访问类型)。

⽤户可以给⾓⾊授予或赋予指定的权限,然后将⾓⾊赋给相应的⽤户。

⼀个⽤户也可以直接给其他⽤户授权。

⼀、登录sqlplus sys/sys as sysdba;1、创建⽤户create user test identified by test;这样就创建了⼀个⽤户名密码都为test的⽤户但这个时候test还是不能登陆成功的,我们需要赋予相应的权限2、赋予create session 的权限grant create session to test;这样test⽤户就能成功登录进去赋予⽤户创建表的权限grant create table to test;赋予相应的权限grant unlimited tablespace to test;这个时候⽤户就拥有了创建表的权限由于表是⽤户test的,相应的他就拥有了对创建的表的增删查改的权限了3、撤销权限revoke create table from test;⼆、删除⽤户drop user ⽤户名;若⽤户拥有对象,则不能直接删除,否则将返回⼀个错误值。

oracle19c之用户、权限、表空间

oracle19c之用户、权限、表空间

oracle19c之⽤户、权限、表空间 ⼀、⽤户相关操作 1、查询⽤户select * from dba_users; --查询全库所有的⽤户select * from all_users; --查询当前⽤户可看到的⽤户select * from user_users; --查询当前登录的⽤户 2、创建⽤户(创建者需要有dba权限,⽤户名必须以c##开头,默认的表空间是users,新⽤户没有任何权限。

)create user c##sl IDENTIFIED BY 123456; 3、删除⽤户drop user c##sl2 cascade; --删除⽤户不会删除其表空间 注意:⽆法删除⽤户C##SL3,报错“[Err] ORA-01940: ⽆法删除当前连接“的⽤户解决⽅法:select username,sid,serial#,paddr from v$session where username='C##SL3';alter system kill session '17,55857'; 4、修改密码alter user c##sl3 identified by 1234; ⼆、权限相关操作 a、系统权限:⽤户在系统层⾯的权限,如CREATE SESSION、SELECT ANY TABLE等不依赖于对象的权限 b、对象权限:⽤户关于某个具体对象的权限,如SELECT、UPDATE、INSERT等依赖于表、视图、存储过程的权限 c、⾓⾊:⼀组权限的集合 注意:PUBLIC⽤户具有的权限,其他⽤户都会有,即修改PUBLIC⽤户的权限,其他⽤户也会对应得改变权限 1、查看权限、⾓⾊select * from user_tab_privs; --当前⽤户具有的对象权限select * from dba_tab_privs WHERE grantee='C##SL' OR grantor='C##SL'; --全部⽤户具有的对象权限,查询C##SL⽤户的select * from user_sys_privs; --当前⽤户具有的系统权限select * from dba_sys_privs WHERE grantee='C##SL'; --全部⽤户具有的系统权限,查询C##SL⽤户的SELECT * FROM user_role_privs; --当前⽤户具有的⾓⾊SELECT * FROM dba_role_privs where grantee='C##SL'; --全部⽤户具有的⾓⾊,查询C##SL⽤户的 注意:上⾯每⼀对查询出的结果应该⼀样,因为全部⽤户中肯定也包含当前⽤户,普通⽤户没有查询全部⽤户⾓⾊、权限表的权限 2、常⽤权限、⾓⾊dba 管理员⾓⾊connect 连接数据库⾓⾊,能修改、删除表及数据,不能创建表resource 能创建表create session 连接数据库权限create table 建表权限unlimited tablespace 操作表空间权限select any table 查询任何表的权限select on c##test.book 查询c##test⽤户的book表的权限 说明: a、⼀般来说,新建的普通⽤户后授予connect和resource⾓⾊就好了、如果是管理员需要再授予dba⾓⾊。

oracle权限关于with admin option和with grant option的用法

oracle权限关于with admin option和with grant option的用法

oracle权限关于with admin option和with grant option的用法
问题:oracle权限关于with admin option和with grant option的用法回答:
1、with admin option
with admin option的意思是被授予该权限的用户有权将某个权限(如create any table)授予其他用户或角色,取消是不级联的。

如授予A系统权限create session with admin option,然后A 又把create session权限授予B,但管理员收回A的create session 权限时,B依然拥有create session的权限。

但管理员可以显式收回
B create session的权限,即直接revoke create session from B.
2、with grant option
with grant option的意思是:权限赋予/取消是级联的,如将with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

oracle数据库grant用法

oracle数据库grant用法

oracle数据库grant用法GRANT语句用于授予用户或用户组在数据库对象上的权限。

GRANT的语法如下:GRANT privileges ON object TO user;其中,privileges表示要授予的权限,可以是单个权限或多个权限的组合,object表示要授予权限的对象,可以是表、视图、存储过程等数据库对象,user表示要授予权限的用户或用户组。

以下是一些常见的GRANT用法:1. 授予用户SELECT权限:GRANT SELECT ON table_name TO user;2. 授予用户INSERT、UPDATE权限:GRANT INSERT, UPDATE ON table_name TO user;3. 授予用户所有权限:GRANT ALL PRIVILEGES ON table_name TO user;4. 授予用户在所有表上的所有权限:GRANT ALL PRIVILEGES ON *.* TO user;5. 授予用户在指定数据库上的所有权限:GRANT ALL PRIVILEGES ON database_name.* TO user;6. 授予用户在指定表上的SELECT权限,并可以将权限赋予其他用户:GRANT SELECT ON table_name TO user WITH GRANT OPTION;7. 授予用户在指定表上的SELECT权限,并限制该权限只能在特定时间段内使用:GRANT SELECT ON table_name TO user WITH GRANT OPTION FOR INTERVAL '10' HOUR;8. 授予用户在指定表上的SELECT权限,并限制该权限只能在特定时间范围内使用:GRANT SELECT ON table_name TO user WITH GRANT OPTION FROM TO '2022-01-01' TO '2022-12-31';注意:为了执行GRANT语句,你需要具有足够的权限,通常需要具有DBA或SYSDBA角色。

oracle授权机制

oracle授权机制

oracle授权机制Oracle授权机制是指在Oracle数据库中对用户和角色进行授权和权限管理的机制。

通过授权,可以限制用户对数据库对象的访问和操作,保证数据的安全性和完整性。

在Oracle数据库中,授权是通过使用GRANT和REVOKE语句来实现的。

GRANT语句用于授权,REVOKE语句用于回收权限。

授权可以分为系统级授权和对象级授权两种。

系统级授权是指对用户和角色进行授权,控制其对整个数据库实例的访问权限。

通过GRANT语句可以授予用户和角色系统级权限,如CREATE SESSION、CONNECT、CREATE TABLESPACE等。

系统级权限授权给用户后,用户可以连接到数据库实例并执行相应的操作。

对象级授权是指对数据库对象(如表、视图、存储过程等)进行授权,控制用户对这些对象的访问和操作权限。

通过GRANT语句可以授予用户对特定对象的SELECT、INSERT、UPDATE、DELETE 等权限。

对象级授权可以细粒度地控制用户对数据库对象的操作,提高数据的安全性。

在进行授权时,可以指定授权的粒度和范围。

粒度可以是对象级、行级或列级。

对象级授权是指对整个对象进行授权,行级授权是指对对象中的某些行进行授权,列级授权是指对对象中的某些列进行授权。

范围可以是用户级、角色级或全局级。

用户级授权是指将权限授予特定用户,角色级授权是指将权限授予角色,全局级授权是指将权限授予所有用户。

除了GRANT和REVOKE语句外,Oracle还提供了其他一些相关的语句和视图来管理和查询授权信息。

例如,可以使用ALTER USER语句修改用户的权限,使用GRANT ROLE语句将角色授予用户,使用ROLE_TAB_PRIVS视图查看角色的权限等。

在实际应用中,需要根据业务需求和安全要求来设计和管理授权机制。

合理的授权设计可以保证数据库的安全性和性能。

一般来说,应该遵循以下几个原则:1.最小权限原则:即给用户和角色授予最小必需的权限,避免赋予过多的权限,降低风险。

oracle 控制权限的语句

oracle 控制权限的语句

oracle 控制权限的语句
在Oracle中,可以使用以下语句来控制权限:
1. GRANT:授予用户或角色特定的权限。

例如:GRANT SELECT, INSERT ON table_name TO
user_name;
GRANT role_name TO user_name;
2. REVOKE:撤销用户或角色的权限。

例如:REVOKE SELECT, INSERT ON table_name FROM user_name;
REVOKE role_name FROM user_name;
3. CREATE USER:创建新用户。

例如:CREATE USER user_name IDENTIFIED BY password;
4. ALTER USER:修改用户属性。

例如:ALTER USER user_name PASSWORD EXPIRE;
ALTER USER user_name DEFAULT TABLESPACE
new_tablespace;
5. CREATE ROLE:创建新角色。

例如:CREATE ROLE role_name;
6. GRANT ROLE:授予角色给用户。

例如:GRANT role_name TO user_name;
7. SET ROLE:启用角色。

例如:SET ROLE role_name;
8. DROP USER:删除用户。

例如:DROP USER user_name;
这些语句可以帮助管理员在Oracle数据库中控制用户和角色的权限。

请注意,执行这些语句需要具有相应的特权。

Oracle用户及权限管理

Oracle用户及权限管理

25
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
课堂训练-3
1、设置用户密码失效 2、并测试是否修改成功
26
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
锁定和解除用户锁定
如果要禁止某个用户访问Oracle 系统,那么最好的方式是锁定该用户,而不 是删除该用户。锁定用户并不影响该用户所拥有的对象和权限,这些对象和权限依 然存在,只是暂时不能以该用户的身份访问系统。当锁定解除后,该用户可以正常 地访问系统、按照自己原有的权限访问各种对象。
Oracle 数据库管理
本讲目标
能初步掌握用户的管理 能初步掌握用户权限的管理 能初步掌握角色的管理
3
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
1、用户与模式的关系
用户:Oracle用户是用于连接数据库和访问数据库对象的。 模式(方案):是用户所拥有的数据库对象的集合,模式对象是数 据库数据的逻辑结构
其中
在创建用户时,创建者必须具有create user系统权限。
user_name指定将要创建的新数据库用户名称。 Password指定该新数据库用户的密码。 def_tablespace指定存储该用户所创建对象的默认表空间。 temp_tablespace指定存储临时对象的默认表空间。
18
15
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
oracle的normal 、 sysdba 、 sysoper 有什么区别 ?
注意:system 如果正常登录,它其实就是一个普通的 dba 用户,但是 如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的。其 他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的。

oracle数据库grant用法

oracle数据库grant用法

Oracle数据库GRANT用法1. 什么是GRANTGRANT是Oracle数据库中的一条授权命令,用于授予用户或角色对数据库对象的访问权限。

通过GRANT命令,可以将特定的权限授予用户或角色,使其能够执行特定的数据库操作。

2. GRANT命令语法GRANT命令的基本语法如下:GRANT privilege [, privilege...]ON objectTO {user | role | PUBLIC}[WITH GRANT OPTION];•privilege:表示要授予的权限,可以是系统权限或对象权限。

系统权限包括CREATE SESSION、ALTER SESSION、CREATE TABLESPACE等,对象权限包括SELECT、INSERT、UPDATE、DELETE等。

•object:表示要授予权限的对象,可以是表、视图、序列、存储过程等。

•user:表示要授予权限的用户。

•role:表示要授予权限的角色。

•PUBLIC:表示要授予权限给所有用户。

•WITH GRANT OPTION:表示授予的权限可以再次被授予给其他用户或角色。

3. 授权示例以下是一些常见的授权示例:3.1 授予SELECT权限给用户GRANT SELECT ON employees TO alice;上述语句将SELECT权限授予用户alice,使其能够查询employees表。

3.2 授予INSERT、UPDATE权限给角色GRANT INSERT, UPDATE ON orders TO sales_role;上述语句将INSERT和UPDATE权限授予角色sales_role,使其能够向orders表插入新记录并更新已有记录。

3.3 授予EXECUTE权限给用户GRANT EXECUTE ON procedure_name TO bob;上述语句将EXECUTE权限授予用户bob,使其能够执行名为procedure_name的存储过程。

oracle grant 的规则

oracle grant 的规则

Oracle数据库中grant是用来赋予用户或角色对数据库对象进行访问和操作的权限的命令。

在Oracle数据库中,grant权限有一定的规则和限制,本文将对Oracle grant的规则进行详细的介绍。

一、权限的种类1.1 数据库级的权限在Oracle数据库中,grant权限可以分为数据库级的权限和对象级的权限。

数据库级的权限包括CREATE SESSION、ALTER SYSTEM、GRANT ANY PRIVILEGE等。

这些权限是针对整个数据库的,只有具有这些权限的用户或角色才能进行相应的操作。

1.2 对象级的权限对象级的权限是针对具体的数据库对象,如表、视图、存储过程等。

常见的对象级权限包括SELECT、INSERT、UPDATE、DELETE等。

这些权限控制了用户对于特定对象的访问和操作权限。

二、grant权限的语法2.1 给用户授权权限grant权限的语法是:GRANT privilege ON object TO user;其中,privilege表示要授予的权限,可以是数据库级的权限,也可以是对象级的权限;object表示要授权的对象,可以是表、视图、存储过程等;user表示被授权的用户。

2.2 给角色授权权限与给用户授权类似,给角色授权的语法是:GRANT privilege ON object TO role;其中,role表示被授权的角色。

2.3 with grant option在grant权限的语法中,还可以使用with grant option来允许被授权的用户或角色将权限再授予给其他用户或角色,语法为:GRANT privilege ON object TO user WITH GRANT OPTION;三、grant权限的规则和限制3.1 grant权限的层级在Oracle数据库中,权限是按照层级进行继承和控制的。

数据库级的权限是最高级的,只有具有数据库级权限的用户或角色才能授予其他用户或角色相应的权限。

oracle 数据库授权规则

oracle 数据库授权规则

一、概述在现代信息技术领域,数据库扮演着至关重要的角色。

而Oracle数据库作为全球最为著名的关系型数据库管理系统之一,在企业级应用系统中被广泛使用。

而在管理Oracle数据库时,数据库授权是一项十分重要的工作。

本文将从Oracle数据库的授权规则出发,系统地介绍Oracle数据库授权的相关内容。

二、Oracle数据库授权的基本概念1. Oracle数据库授权的定义在数据库管理中,授权是指授权用户或角色访问数据库中对象的操作的过程。

授权规则则是指相应的授权原则和规定。

Oracle数据库授权即是指允许用户或角色对数据库对象进行访问和操作的权限规定。

2. Oracle数据库授权的类型Oracle数据库授权可以分为系统级授权和对象级授权两种类型。

系统级授权是对数据库中所有对象的权限进行授权,而对象级授权是对具体某个对象(如表、视图等)的权限进行授权。

三、Oracle数据库授权规则的具体内容1. 系统级授权规则(1)系统管理员权限授权:在Oracle数据库中,系统管理员(通常是sys用户)具有最高的权限,可以对所有对象进行操作。

在授权时,应谨慎授予系统管理员权限,以免造成数据库安全风险。

(2)特定角色授权:在Oracle数据库中,有一些特定的角色(如DBA角色、CONNECT角色等)拥有特定的权限。

在授权时,需要根据具体需求,合理授予相应的角色。

2. 对象级授权规则(1)表级权限授权:在Oracle数据库中,对表的权限授权是非常常见的操作。

授权对象可以是用户或者角色,授权的操作可以包括SELECT、INSERT、UPDATE、DELETE等。

(2)视图级权限授权:对视图的权限授权也同样重要,可以控制用户或角色对视图的查询权限。

(3)存储过程权限授权:对存储过程的权限授权可以控制哪些用户或角色可以执行特定的存储过程。

3. 其他规则(1)跨数据库授权:在复杂的系统环境中,可能存在跨多个Oracle数据库的授权问题。

oracle 查看用户、权限、角色

oracle 查看用户、权限、角色

查看用户、权限、角色的命令和视图a1.查看所有用户:select * from dba_users;select * from all_users;select * from user_users;2.查看用户系统权限:select * from dba_sys_privs;select * from session_privs;select * fromuser_sys_privs;3.查看用户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * fromuser_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_PRIVS:当前角色被赋予的角色SESSION_ROLES:当前用户被激活的角色USER_ROLE_PRIVS:当前用户被授予的角色另外还有针对表的访问权限的视图:TABLE_PRIVILEGESALL_TAB_PRIVSROLE_TAB_PRIVS:某个角色被赋予的相关表的权限oracle与用户角色权限相关的视图Oracle 本身的数据字典设计我个人觉得很合理,因为DBA_xxx,ALL_xxx,USER_xxx让人一看大概就知道这个视图是干什么用的.本文简要总结了一下与权限,角色相关的视图.一.概述与权限,角色相关的视图大概有下面这些:1、DBA_SYS_PRIVS:查询某个用户所拥有的系统权限。

系统中用户权限的赋予

系统中用户权限的赋予

Oracle系统中用户权限的赋予,查看和管理.在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或oper的权限,只考虑普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据表权限.1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了):create user DB_USER identified by DB_USER_PW '创建用户DB_USER,密码为DB_USER_PW grant create session to DB_USER '给用户创建会话的权限grant resource to DB_USER2.当用户建立后,会自动在Oracle数据库系统中生成属于该用户的Scheme (可以理解为所有属于该用户的表,视图....等对象的集合).该用户可以将对这些对象的访问权限赋予其它的系统用户.3.该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于CNOUG网站):本用户读取其他用户对象的权限:select * from user_tab_privs;本用户所拥有的系统权限:select * from user_sys_privs;ORACLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。

为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。

2. 1 ORACLE数据库安全策略建立系统级的安全保证系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。

系统特权可授予用户,也可以随时回收。

ORACLE系统特权有80多种。

建立对象级的安全保证对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。

Oracle数据库的用户和权限管理

Oracle数据库的用户和权限管理

5.2.2 创建角色
使用CREATE ROLE语句可以创建一个新的角色,执行该语 句的用户必须具有CREATE ROLE系统权限。
在角色刚刚创建时,它并不具有任何权限,这时的角色是 没有用处的。因此,在创建角色之后,通常会立即为它授予权 限。例如:利用下面的语句创建了一个名为OPT_ROLE的角色, 并且为它授予了一些对象权限和系统权限:
ORACEL利用角色更容易地进行权限管理。有下列优点: (1)减少权限管理,不要显式地将同一权限组授权给 几个用户,只需将这权限组授给角色,然后将角色授权给 每一用户。 (2)动态权限管理,如果一组权限需要改变,只需修 改角色的权限,所有授给该角色的全部用户的安全域将自 动地反映对角色所作的修改。 (3)权限的选择可用性,授权给用户的角色可选择地 使其可用或不可用。 (4)应用可知性,当用户经用户名执行应用时,该数 据库应用可查询字典,将自动地选择使角色可用或不可用。 (5)应用安全性,角色使用可由口令保护,应用可提 供正确的口令使用角色,如不知其口令,不能使用角色。
系统权限可授权给用户或角色,一般,系统权限只授 予管理人员和应用开发人员,终端用户不需要这些相关功 能。 2)对象权限:在指定的表、视图、序列、过程、函数或包 上执行特殊动作的权利。
2.角色 为相关权限的命名组,可授权给用户和角色。数据库角 色包含下列功能: (1)一个角色可授予系统权限或对象权限。 (2)一个角色可授权给其它角色,但不能循环授权。 (3)任何角色可授权给任何数据库用户。 (4)授权给用户的每一角色可以是可用的或者不可用 的。一个用户的安全域仅包含当前对该用户可用的全部角 色的权限。 (5)一个间接授权角色对用户可显式地使其可用或不 可用。 在一个数据库中,每一个角色名必须唯一。角色名与用 户不同,角色不包含在任何模式中,所以建立角色的用户 被删除时不影响该角色。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 管理对象权限
对象权限指访问其他用户模式对象的权利。

在Oracle数据库中,用户可以直接访问其模式对象,但如果要访问其他用户的模式对象时,必须具有相应的对象权限。

1.对象权限的分类
根据不同的对象类型,Oracle数据库设置了不同类型的对象权限。

对象权限及对象之间的对应关系如表13-5所示。

表13-5 对象、对象权限的对应关系
ALTE R DELET
E
EXECU
TE
INDE
X
INSE
RT
RREA
D
REFEREN
CE
SELE
CT
UPDA T
E
DIRECTOR
Y

FUNCTION √
PROCEDU
RE

PACKAGE √
SEQUENCE √√
TABLE √√√√√√√
VIEW √√√√
其中,“√”表示某种对象所具有的对象权限,空格表示该对象没有某种权限。

例如,对于基本表TABLE,具有ALTER、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE权限,而没有EXECUTE权限。

多种权限组合在一起时,可以使用ALL关键字,表示该对象的全部权限,对于不同的对象,ALL组合的权限数量是不相同的。

对于表TABLE而言,ALL表示ALTER、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE权限;对于存储过程,ALL只代表EXECUTE权限。

2.授予对象权限
对象权限由该对象的拥用者为其他用户授权,非对象的拥有者不得向其他用户授予对象授权。

将对象权限授出后,获权用户可以对对象进行相应的操作,没有授予的权限不得操作。

从Oracle 9i开始,DBA用户可以将任何对象权限授予其他用户。

授予对象权限所使用的GRANT语句形式如下:
grant { object_priv [ (column_list) ] [,object_priv[(column_list)]]….
| ALL [PRIVILEGES] ON [ schema.]object
TO { user | role | PUBLIC} [,{user | role | public}] …
[with grant option]
其中,OBJECT_PRIV是对象权限,COLUMN_LIST用于标识权限所对应列的列表,SCHEMA表示模式名,USER表示被授权的用户,ROLE表示被授权的角色。

对象权限不仅可以授予用户、角色,也可以授予PUBLIC。

将对象权限授予PUBLIC后,会使所有用户都具有该对象权限。

授予对象权限时,可以带有WITH GRANT OPTION选项,若使用该选项,被授权用户可以将对象权限转授给其他用户。

例如,以下的示例向用户DEVELOPER 授予对EMP 表的SELECT 权限:
SQL> grant select on scott.emp 2 to developer; 授权成功。

SQL> conn developer/developer 已连接。

SQL> select ename,job,sal 2 from scott.emp 3 where deptno=10;
ENAME JOB SAL ---------- --------- ---------- MARY CLERK 1000 ATG CLERK
1200 CLARK MANAGER 2550 KING PRESIDENT 5100 MILLER CLERK 1400
在直接授予对象权限时,用户可以访问对象的所有列。

在向用户授予对象权限时,还可以控制用户对模式对象列的访问,即列权限。

需要注意,只能在INSERT 、UPDATE 和REFERENCES 上授予列权限。

例如,将更新SAL 列的权限授予DEVELOPER 用户后,该用户将只能更新SAL 列:
SQL> grant update(sal) on scott.emp to developer; 授权成功。

SQL> conn developer/developer 已连接。

SQL> update scott.emp 2 set sal=sal*1.1 3 where deptno=10; 已更新5行。

3.显示对象权限
授予对象权限时,Oracle 会将对象权限的信息存放到数据字典中。

表13-6列出与对象权限相关的数据字典视图。

表13-6 对象权限信息的数据字典视图 数据字典视图
描述
DBA_TAB_PRIVS 显示所有用户或角色的对象权限信息 DBA_COL_PRIVS
显示所有用户或角色的列权限信息
注 意 需要注意,WITH GRANT OPTION 选项不能授予角色。

ALL_COL_PRIVS_MADE 显示对象所有者或授权用户授出的所有列权限
ALL_COL_PRIVS_RECD 显示用户或PUBLC组被授予的列权限
ALL_TAB_PRIVS_MADE 显示对象所有者或授权用户所授出的所有对象权限
ALL_TAB_PRIVS_RECD 显示用户所具有的对象权限
例如,下面的语名将查询DBA_TAB_PRIVS显示DEVELOPER用户被授予的所有对象权限:
SQL> col grantor format a10
SQL> col object format a15
SQL> col privilege format a10
SQL> select grantor,owner || '.' ||table_name oject,privilege
2 from dba_tab_privs
3 where grantee='DEVELOPER';
GRANTOR OJECT PRIVILEGE
-------------- ----------- ---------------------------
SCOTT SCOTT.EMP SELECT
其中,GRANTOR表示授权用户,OWNER表示对象所有者,TABLE_NAME为数据库对象,PRIVILEGE表示相应的对象权限,GRANTEE表示为被授权的用户或角色。

4.回收对象权限
一般情况下,收回对象权限是由对象的所有者完成的。

如果以其他用户身份收回对象权限,则要求该用户必须是权限授予者。

回收对象权限的REVOKE语句的形式如下:revoke { object_priv [,object_priv]…| ALL [PRIVILEGES] }
ON [ schema.]object
FROM { user | role | PUBLIC};
[cascade constraints];
回收对象权限时需要注意,授权者只能从自己授权的用户那里回收对象权限。

如果被授权用户基于一个对象权限创建了过程、视图,那么当回收该对象权限后,这些过程、视图将变为无效。

例如,下面的语句回收DEVELOPER用户的对象权限:
SQL> revoke select on scott.emp from developer;
撤销成功。

SQL> connect developer/developer
已连接。

SQL> select * from scott.emp;
select * from scott.emp
*
第 1 行出现错误:
ORA-01031: 权限不足
在回收对象权限时,经过传递获得对象权限的用户将会受到影响,如图13-5所示。

如果用户A将对象权限a授予了用户B,用户B又将对象权限a授予了用户C。

那么,当删除用户B后或从用户B回收对象权限a后,用户C将不再具有该对象权限a,并且用户B 和C中与该对象权限有关的对象都变成无效。

A
B C
A
C
回收权限前
回收权限后
B a
a a
a
图13-5 对象权限的传递及其回收。

相关文档
最新文档