Oracle用户角色权限等操作

上传人:ji****72 文档编号:37525263 上传时间:2018-04-17 格式:DOCX 页数:13 大小:34.62KB
返回 下载 相关 举报
Oracle用户角色权限等操作_第1页
第1页 / 共13页
Oracle用户角色权限等操作_第2页
第2页 / 共13页
Oracle用户角色权限等操作_第3页
第3页 / 共13页
Oracle用户角色权限等操作_第4页
第4页 / 共13页
Oracle用户角色权限等操作_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《Oracle用户角色权限等操作》由会员分享,可在线阅读,更多相关《Oracle用户角色权限等操作(13页珍藏版)》请在金锄头文库上搜索。

1、oracle 赋予权限转发 评论 02 月 21 日 13:00 最基础的 sqlplus username/passwordsid 连接数据库sqlplus username/password as sysdba 以管理员连接数据库管理员连接后 创建用户 sqlplus system/managerdemo as sysdba create user abc identified by abc ; 创建用户 abc 密码为 abcgrant all privileges to abc; 给 abc 用户赋予所有的权限 给自己留个备份 以备不时之需oracle grant 授权语句-selec

2、t * 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 USERNA

3、ME; 授权查询 授权其他动作格式相同如果要把所有表的查询权限分配给用户可以用这样的grant select any table to USERNAME;-grant execute on procedure1 to xujin 授权存储过程 -grant UPDATE on TABLENAME to USERNAME with grant option; 授权更新权限转移给xujin 用户,许进用户可以继续授权; -收回权限 -revoke select on table1 from xujin1; 收回查询 select 表的权限; -revoke all on table1 from x

4、ujin; /*grant connect to xujin; revoke connect from xujin grant select on xezf.cfg_alarm to xujin; revoke select on xezf.cfg_alarm from xujin;*/ -select table_name,privilege from dba_tab_privs where grantee=xujin 查询一个用户拥有的对象权限 -select * from dba_sys_privs where grantee=xujin 查询一个用户拥有的系统权限 -select *

5、from session_privs -当钱会话有效的系统权限 -角色 -create role xujin1;-建立 xujin1 角色 -grant insert on xezf.cfg_alarm to xujin1; 将插入表的信息 -revoke insert on xezf.cfg_alarm from xujin1; 收回 xujin1 角色的权限 -grant xujin1 to xujin ; 将角色的权限授权给 xujin; - create role xujin2; -grant xujin1 to xujin2; 将角色 xujin1 授权给 xujin2; -alte

6、r user xujin default xujin1,xujin2; 修改用户默认角色 - DROP ROLE xujin1;删除角色 1; -select * from role_sys_privs where role=xujin1; -查看许进 1 角色下有什么系统权限; -select granted_role,admin_option from role_role_privs where role=xujin2 -查看 xujin1 角色下面有什么角色权限 -select * from role_sys_privs where role=xujin2 -select table_n

7、ame,privilege from role_tab_privs where role=xujin1 -select * from dba_role_privs where grantee=xujin -查看用户下面有多少个角色;=详解=GRANT 名称 GRANT - 赋予访问权限语法 GRANT SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER ,. | ALL PRIVILEGES ON TABLE tablename , .TO username | GROUP groupname | PUBLIC , . WITH G

8、RANT OPTION GRANT USAGE | SELECT | UPDATE ,. | ALL PRIVILEGES ON SEQUENCE sequencename , .TO username | GROUP groupname | PUBLIC , . WITH GRANT OPTION GRANT CREATE | CONNECT | TEMPORARY | TEMP ,. | ALL PRIVILEGES ON DATABASE dbname , .TO username | GROUP groupname | PUBLIC , . WITH GRANT OPTION GRAN

9、T EXECUTE | ALL PRIVILEGES ON FUNCTION funcname ( argmode argname argtype , . ) , .TO username | GROUP groupname | PUBLIC , . WITH GRANT OPTION GRANT USAGE | ALL PRIVILEGES ON LANGUAGE langname , .TO username | GROUP groupname | PUBLIC , . WITH GRANT OPTION GRANT CREATE | USAGE ,. | ALL PRIVILEGES O

10、N SCHEMA schemaname , .TO username | GROUP groupname | PUBLIC , . WITH GRANT OPTION GRANT CREATE | ALL PRIVILEGES ON TABLESPACE tablespacename , .TO username | GROUP groupname | PUBLIC , . WITH GRANT OPTION GRANT role , . TO username , . WITH ADMIN OPTION 描述 GRANT 命令有两个基本变种:一个变种是给数据库对象(表、视图、序列、数据库、函

11、数、过程语言、模式、表空间)赋予权限;一个变种是赋予一个角色中的成员关系。这些变种在很多方面都非常类似,但是它们之间的区别也有足够理由来分开描述。到了 PostgreSQL 8.1,用户和组的概念已经统一成一类对象,叫角色。因此就没有必要使用关键字 GROUP 来标识一个授予者是用户还是组。GROUP 仍然可以在命令中使用,但只是一个多余的词而已。在数据库对象上的 GRANT 这个变种的 GRANT 命令在数据库对象上给一个或多个角色授予特定的权限。这些权限追加到已经授予的权限上。关键字 PUBLIC 表示该权限要赋予所有角色,包括那些以后可能创建的用户。PUBLIC 可以看做是一个隐含定义好

12、的组,它总是包括所有角色。任何特定的角色都将拥有直接赋予他/它的权限,加上他/它所处的任何组,以及再加上赋予 PUBLIC 的权限的总和。如果声明了 WITH GRANT OPTION ,那么权限的接收者也可以将此权限赋予他人,否则就不能授权他人。这个选项不能赋予 PUBLIC对于对象的所有者(通常就是创建者)而言,没有什么权限需要赋予,因为所有者缺省就持有所有权限。不过,所有者出于安全考虑可以选择废弃一些他自己的权限。删除一个对象的权力,或者是任意修改它的权力都不是可赋予的权限;它是创建者固有的,并且不能赋予或撤销。所有者也隐含地拥有该对象的所有授权选项。根据对象的不同,初始的缺省权限包括一

13、些赋予 PUBLIC 的权限:对于表、模式、表空间没有公开访问权限;对于数据库有 CONNECT 权限和创建 TEMP 表的权限;对于函数有 EXECUTE 权限;对于语言有 USAGE 权限。对象所有者当然可以撤回这些权限。出于最大安全性考虑,在创建该对象的同一个事务中发出 REVOKE 就不会打开给别的用户使用该对象的窗口。可能的权限有:SELECT 允许对声明的表、试图、序列 SELECT 任意字段。还允许做 COPY TO 的源。对于序列而言,这个权限还允许使用 decurrvalde 函数。INSERT 允许向声明的表 INSERT 一个新行。同时还允许做 COPY FROMUPDA

14、TE 允许对声明的表中任意字段做 UPDATE 。SELECT . FOR UPDATE 和 SELECT . FOR SHARE 也要求这个权限(除了 SELECT 权限之外)。比如,这个权限允许使用 denextvalde 和 desetvalde 函数。DELETE 允许从声明的表中 DELETE 行REFERENCES 要创建一个外键约束,你必须在参考表和被参考表上都拥有这个权限。TRIGGER 允许在声明表上创建触发器(参见 CREATE TRIGGER 语句)CREATE 对于数据库,允许在该数据库里创建新的模式。对于模式,允许在该模式中创建新的对象。要重命名一个现有对象,你必需拥

15、有该对象并且对包含该对象的模式拥有这个权限。对于表空间,允许在其中创建表,以及允许创建数据库和模式的时候把该表空间指定为其缺省表空间。请注意,撤销这个权限不会改变现有数据库和模式的存放位置。CONNECT 允许用户连接到指定的数据库。该权限将在连接启动时检查(除了检查 pg_hba.conf 中的任何限制之外)。TEMPORARYTEMP 允许在使用该数据库的时候创建临时表EXECUTE 允许使用指定的函数并且可以使用任何利用这些函数实现的操作符。这是适用于函数的唯一权限。该语法同样适用于聚集函数。USAGE 对于过程语言,允许使用指定过程语言创建该语言的函数。这是适用于过程语言的唯一权限。对于模式,允许访问包含在指定模式中的对象(假设该对象的所有权要求同样也设置了)。最终这些就允许了权限接受者“查询“模式中的对象。没有这个权限仍然可以看见这些对象的名字(比如通过查询系统视图)。同样,撤销该权限之后,现有的后端可能有在查找之前就执行了的语句,因此这不是一个很安全的限制对象访问的方法。对于序列,该权限允许使用 decurrvalde 和 d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号