oracle用户权限管理分解

合集下载

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  管理对象权限

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

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

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

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

表13-5 对象、对象权限的对应关系ALTE R DELETEEXECUTEINDEXINSERTRREADREFERENCESELECTUPDA TEDIRECTORY√FUNCTION √PROCEDURE√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.]objectTO { user | role | PUBLIC} [,{user | role | public}] …[with grant option]其中,OBJECT_PRIV是对象权限,COLUMN_LIST用于标识权限所对应列的列表,SCHEMA表示模式名,USER表示被授权的用户,ROLE表示被授权的角色。

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分配用户权限语句

oracle分配用户权限语句

oracle分配用户权限语句嘿,你知道吗,在 Oracle 里要给用户分配权限,那可真是一门学问呢!就好像你要给一个小伙伴分配任务一样,得搞清楚该给啥权限,不能多也不能少。

比如说,你想让某个用户能查看一些特定的数据,那就得用合适的语句来给他这个权限。

“GRANT SELECT ON table_name TOuser_name;”,看,这就是一条简单的分配读权限的语句啦。

就好像你给朋友一把钥匙,让他能打开特定的那扇门去看看里面的东西。

但要是想让用户能修改数据呢,那就得用不同的语句啦,“GRANT INSERT, UPDATE ON table_name TO user_name;”。

这就好比你不仅给了朋友钥匙,还告诉他可以在里面动点小手脚,改改东西呢。

哎呀,这可真不是随随便便就能搞对的呀!要是不小心给错了权限,那不就乱套了嘛!就像你本想让朋友帮忙打扫下客厅,结果不小心让他能随便进卧室翻东西了,那可不行呀!而且,分配权限的时候还得考虑周全,不能只看眼前。

比如说,以后这个用户的职责会不会变呀,到时候权限是不是又得重新调整呢。

这就跟你给朋友安排任务一样,一开始可能只让他做一件事,后来发现他还能做更多,或者原来的任务不需要他做了,那权限不就得跟着变嘛。

在 Oracle 中分配用户权限语句真的是非常重要的呀!这可关系到整个数据库的安全和正常运行呢。

要是权限分配得不合理,那可能会带来很多麻烦,甚至会导致数据泄露或者错误。

所以呀,我们可得认真对待,就像对待我们最珍视的宝贝一样,小心翼翼地去设置好每一个权限。

总之,Oracle 分配用户权限语句这事儿,可真是既有趣又充满挑战呢!我们得好好研究,才能把它玩转,让数据库乖乖听话呀!。

oracle用户管理,授权与回收权限

oracle用户管理,授权与回收权限

oracle⽤户管理,授权与回收权限⼀. ⽤户管理参数,0.删除⽤户: drop user ⽤户名 [cascade] 当我们删除⽤户时, 如改⽤户已创建过数据对象, 那么删除⽤户时必须加cascade参数, ⽤来同步删除 改⽤户的所有信息. 如还想使⽤该⽤户的数据, 则不可删除⽤户, 可以冻结该⽤户即可.1.创建⽤户⽅法⼀: create user ⽤户名 identified by 密码 ; # 创建⽤户, 但缺少必要的东西, 完整命令看下⾯. 创建的⽤户没有任何权限.ORA-01045: user QUZQ lacks CREATE SESSION privilege; logon denied 需要dba给新建的⽤户进⾏授权,如下: 基本语法: grant 权限/⾓⾊ to ⽤户 grand connect to ⽤户名 # 授权可以链接数据库 grand resource to ⽤户名 # 授权建表⽆空间⼤⼩的限制 grand dba to ⽤户名 # 设置⽤户为dba grand create session to ⽤命名 # create session权限即登陆数据库实列 使⽤revoke命令可回收权限或⾓⾊, 语法: revoke 权限/⾓⾊ from ⽤户 ⾓⾊就是权限的⼀个集合, ⾓⾊分为预先定义(即oracle定义的) 和⾃定义的2.创建⽤户⽅法⼆: sql > create user ⽤户名 identified by 密码 default tabspace users # 指定新建⽤户的表空间为users, users是oracle⾃带的⼀个表空间 temporary tablespace temp # 指定临时表空间为temp, temp空间也是oracle⾃带的 quota 3m on users; # ⽤来限制改⽤户创建的数据对象最⼤只能是3M3.oracle中⽤户的权限管理概念图如下:⼆. ⽤户⽅案 oracle会给每个⽤户创建个⽅案(⽅案可理解为⽤户的独⽴存储空间; 把oracle⽐喻成⼀个⼤房⼦, 那⽅案就相当于是⼤房⼦ 中隔出来的⼩房⼦, 每当添加个oracle⽤户时, 就会在⼤房⼦⾥隔出个⼩屋), 当然前提是该⽤户要创建数据对象, 不然是不会 被分配⽅案的. 每个⽤户的⽅案都是隔离的, 各个⽅案中的表名都可以相同; oracle给⽤户创建的⽅案名同⽤户名. 1. 现有两个⽤户, user1和user2, 如何实现user1来访问user2中的stu表呢? 正常情况这两⽤户是不能互相访问的. ⾸先使⽤user2登陆, 执⾏授权命令,如下: grant select [update | delete | insert | all ] on stu to user1 # 参数为all时, 表⽰增删改查 然后使⽤user1登陆, 执⾏相应命令, 语法如下: select * from user2.stu # select * from ⽅案名.表明 2. 有三个⽤户, user1和user2和user3, 如何把user1的stu表权限给user2,并由user2再把user1的stu表权限给user3呢 这⾥涉及两个命令: with admin option # 如果是⽀配系统权限, 则使⽤这个命令; ⽤于系统权限 with grant option # 得到权限的⽤户, 可继续分配权限, 即有⽀配所得权限的能⼒; ⽤于对象权限 grant all on user1.stu to user2 with grant option # 登陆user1前提下给user2⽀配stu表和crud该表的能⼒ grant all on user1.stu to user3 # 登陆user2把user1的stu表增删该查权限给user3, 但user3⽆再分配权限的能⼒三. ⽤户管理之限制登陆次数, 锁定账户时长 1. 创建profile限制集合, ⽤于配置限制的设置 create profile 集合名 limit failed_login_attempts 3 password_lock_time 2; limit failed_login_attempts 3 # 限制登陆次数为3 password_lock_time 2 # 3次失败后账户锁定2天 2. 把创建好的限制集合分配给⽤户user1 alter user user1 profile 集合名; 3. profile是⼝令限制.资源限制的命令集合, 当建⽴⽤户没有指定frofile选项, oracle将会产⽣个名为default的profile, 并将该default分配给⽤户.。

Oracle用户角色与权限控制

Oracle用户角色与权限控制
alter user system account unlock;
alter user system identified by abc123;
12.2 权限
权限(Privilege)的最终作用对象是用户。即所有用 户在数据库内的操作对象和可执行的动作都是受到限制的。 Oracle中共有两种权限:系统权限和对象权限。
select * from system.t_employees order by employee_id;
12.3.2 继承角色
角色继承是指一个角色可以继承其他角色的权限信息, 从而减少自身使用grant的机会。
create role role_hr;
grant role_employee to role_hr;
grant update, insert on t_employees to role_hr;
select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = 'T_EMPLOYEES';
create user cat identified by abc;
grant create session to cat;
grant role_hr to cat;
update system.t_employees set status = 'CXL' where employee_id = 13;
12.3.3 禁用和启用角色
每个用户登录数据库时,都可以获得其默认角色。可以 通过查询视图session_roles来获得当前会话下该用户的默 认角色。管理员可以禁用用户的默认角色,一旦禁用,则用 户从该角色获得的权限将不再有效。

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

关于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 2Gautoextend 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) totalblocksfrom dba_data_files tgroup by t.tablespace_name) dbf,(select tt.tablespace_name,sum(tt.bytes) / 1024 / 1024 freespace,sum(tt.blocks) freeblocksfrom dba_free_space ttgroup by tt.tablespace_name) dfswhere trim(dbf.tablespace_name) = trim(dfs.tablespace_name)二、创建用户的命令使用ORACLE用户执行如下命令(无DBA权限):sqlplus '/as sysdba' <<!drop user <user> cascade;create user <user> identified by <user> default tablespace coredb_data temporary tablespace temp;grant connect to <user>;grant resource to <user>;grant create session to <user>;grant create view to <user>;alter user <user> quota unlimited on coredb_idx;alter user <user> quota unlimited on coredb_data;!三、检查用户是否有DBA权限select * from sys.dba_role_privs where granted_role='DBA';GRANTEE GRANTED_ROLE ADM DEF------------------------------ ------------------------------ --- ---------------------- SYSTEM DBA YES YESGLSDB DBA YES YESSHENG DBA YES YESSYS DBA YES YES COREDB DBA YES YES四、去除DBA权限1)Sqlplus “/as sysdba”2)revoke dba from <user>;3)exit;五、用户的权限(1)查看用户权限;(2)增加用户权限;当系统报错:ORA-01031: 权限不足grant create any synonym to dhrep;//增加同义词权限(3)解除用户权限;五、异常情况的处理(1)ora-01045:user system lacks create session privilege; logon denied 解决办法:1)使用oracle 用户执行sqlplus “/as sysdba”2)grant create session,resource to <user>;3)exit;(2)ORA-1536:space quota exceeded for tablespace解决办法:1)使用oracle 用户执行sqlplus “/as sysdba”2)Grant unlimited tablespace to <user>;3)Exit;(3)ORA-01950: 对表空间'USERS' 无权限解决办法:1)使用oracle 用户执行sqlplus “/as sysdba”2)Conn <user>/<passwd>;3)select * from user_sys_privs;USERNAME PRIVILEGE ADM-----------------------------------------------------coredb CREATE SESSION NO4)grant connect,resource,create session,create view to glsdb_hn;5)select * from user_sys_privs;USERNAME PRIVILEGEADM------------------------ ---------------------------------------- ---coredb_HN CREATE VIEW NOcoredb_HN CREATE SESSION NOcoredb_HN UNLIMITED TABLESPACE NO 6)Exit;(4)没有DBA权限后,如果涉及跨db_user访问其他用户的,需要以下方法:1)创建存储过程将两个用户名作为参数传给存储过程:/*把用户(From_user)所有表的读写权限赋给用户(To_user)的存储过程为*/create or replace procedure grantUser(From_user in varchar2, To_user in varchar2) isretval number;scursor int;v_tablename VARCHAR2(60);sqlstr varchar2(200);cursor c_tablename is select table_name from dba_tables where owner=From_user; BEGINfor v_tablename in c_tablenameloopsqlstr := 'grant select,delete,update,insert on '|| From_user||'.'||v_tablename.table_name || ' to '||To_user;scursor := dbms_sql.open_cursor;dbms_sql.parse(scursor,sqlstr, dbms_sql.native);retval := dbms_sql.execute(scursor);dbms_sql.close_cursor(scursor);end loop;exceptionWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');WHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE('程序运行错误!请使用游标');WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('发生其它错误!');END grantUser;//*把用户(From_user)所有表的读写权限从用户(To_user)收回的存储过程为*/ create or replace procedure revokeUser(From_user in varchar2, To_user in varchar2) isretval number;scursor int;v_tablename VARCHAR2(60);sqlstr varchar2(200);cursor c_tablename is select table_name from dba_tables where owner=From_user; BEGINfor v_tablename in c_tablenameloopsqlstr := 'revoke select,delete,update,insert on '||From_user||'.'||v_tablename.table_name || ' from '||To_user;scursor := dbms_sql.open_cursor;dbms_sql.parse(scursor,sqlstr, dbms_sql.native);retval := dbms_sql.execute(scursor);dbms_sql.close_cursor(scursor);end loop;exceptionWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');WHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE('程序运行错误!请使用游标');WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('发生其它错误!');END revokeUser;2)执行存储过程(注意,存储过程的名称不能一样,否则会被替换)Execute grantUser / revokeUser;3)如果增加新的表,还需要充分执行同样的操作;。

利用PLSQL创建Oracle数据库User用户并设置权限

利用PLSQL创建Oracle数据库User用户并设置权限

在PLSQL中创建Oracle数据库Users用户并设置权限
1、首先在PLQL Developer 中打开数据库。

使用"sys" 用户,输入数据库名称,输入该数
据库”sys”用户的密码sysdba,在”Connect as”组合框中选中“SYSDBA”。

单击OK 按钮打开数据库。

2、创建”User”型用户“DXXFLD”。

找到“Users”文件夹,右键弹出菜单中,选中”New”,
弹出用户创建界面:
在其中输入要添加的用户名”DXXFLD”,并作其他设置如下:
户名连接到数据库。

然后通过“Quotas”选项卡设置用户权限:将“Tablespace”中选中“User”, 勾选“Unlimited”复选项(这个一定要选中啊,不然创建表的时候会提示没有表空间的访问权限
的)。

最后单击”Apply”按钮使各项设置起作用。

2、使用新创建的用户创建表。

在”Tables”文件夹上右键单击,选中弹出菜单中“New”选

在之后弹出属性页下,做如下设置:
然后再设置字段名等其他属性就和直接用“System”或“Sys”等表空间创建表一样了。

要说明的是使用自定义”Users”创建的表,其在PLSQL 中“Users“->”Tables”目录下才
可见。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 11G数据库应用开发
概要文件(续)
CONNECT_TIME :指定一个会话连接到数据库 的最大时间 IDLE_TIME DEFAULT:指定一个会话可以连续空 闲的最长时间,单位:分钟 COMPOSITE_LIMIT:设置用户对系统资源的综 合消耗。由: CPU_PER_SESSION、 LOGICAL_READS_PER_SESSION、 PRIVATE_SGA、CONNECT_TIME综合决定
Oracle 11G数据库应用开发
第四讲用户权限管理 用户管理
权限管理
角色管理
概要文件
Oracle 11G数据库应用开发
用户
定义:也叫方案,是一组逻辑对象的所有者。
验证方式:数据库验证和操作系统验证 表空间和临时表空间:表空间为用户创建数据 对象的存储表空间;临时表空间用于创建临时 段。
Revoke r_teach from r_stu
删除角色 drop role r_teach
Oracle 11G数据库应用开发
角色(续)
数据库预定义角色:
Connect (登录执行基本函数)、 Resource(建立用户自己的数据对象)、 DBA(所有系统权限,包括无限的空间限额、给 其他用户授予全部权限的能力)
2、新建一个用于网上购物系统管理的用户 shoppingdba,其中默认表空间为tpshopping, 角色为DBA
Oracle 11G数据库应用开发
创建用户
语法: (简单方式) create user mary --用户名 identified by abc ;--密码 说明:以上为创建用户的必须语句 默认表空间均为users
连接数
临时表空间
概要文件 在表空间上的使用配额
Oracle 11G数据库应用开发
Oracle 11G数据库应用开发
概要文件(续)
控制资源参数: SESSIONS_PER_USER : 限制用户当前会话的数量 CPU_PER_SESSION: 限制一个会话使用的CPU时间 CPU_PER_CALL :限制一个SQL语句使用的CPU时间 LOGICAL_READS_PER_SESSION:限制每个会话读取的数 据库数据块数,包括从内存和磁盘读取的总和 LOGICAL_READS_PER_CALL:限制SQL语句读取的数据库 数据块数,包括从内存和磁盘读取的总和 PRIVATE_SGA :SGA中私有区域的大小
Oracle 11G数据库应用开发
删除用户
删除用户: Drop user annie; 删除拥有对象的用户: Drop user annie cascade; 注意:如果要删除的用户正在连接数据库,不 能将其删除
Oracle 11G数据库应用开发
查询用户
视图DBA_Users 查看所有用户名、用户ID、用户创建日期 视图all_Users
Oracle 11G数据库应用开发
权限查询
视图USER_SYS_Privs:系统权限 视图USER_TAB_Privs:对象权限
Oracle 11G数据库应用开发
角色
定义:角色是一系列权限的集合
功能:简化权限管理
创建角色: Create role r_teach 为角色授权: grant select on class to r_ teach
空间分配:表空间中,必须要为一个用户指派 空间配额,用于存储数据库对象。
Oracle 11G数据库应用开发
用户、角色、权限关系
用户
A
B
C
角色
HR_MGR
HR_CLERK
权限 SELECT ON JOBS CREATE TABLE CREATE SESSION INSERT ON JOBS UPDATE ON JOBS
Oracle 11G数据库应用开发
权限回收(续)
注意:




一个用户被多用户授予权限后,其中一个用户收回权限, 不影响其他用户授予的权限 收回With grant option 或 With admin option,要首先回收 相应的权限,再重新授予该权限而不再授予With grant option 或 With admin option 传递权限With admin option给其他用后,如果此系统权 限被回收,其他用户仍然拥有该系统权限 传递权限With grant option给其他用后,如果此对象权限 被回收,其他用户该对象权限也被收回

– –

连接到数据库需要create session权限 删除其他用户的Table需要drop any table权限 Select、insert、update、delete是对象权限,而 Select any、insert any、update any、delete any是 系统权限 使用 With admin option 进行系统权限传递
Oracle 11G数据库应用开发
角色(续)
删除角色 Drop Role r_teach
Oracle 11G数据库应用开发
概要文件(续)
功能: 控制用户对系统和数据库资源的使用,保证系 统正常运行,防止用户消耗大量资源造成的系 统性能下降。 方法: 设置预定义资源参数。 这些参数包含在概要文件中,如果没有为用户 指定概要文件,则使用Default概要文件
– grant select on class to – grant teach to
teach;
annie;
Oracle 11G数据库应用开发
权限(续)
权限分类:系统权限和对象权限

对象权限(objects Privilege) : 赋予在某一具体数据对象的 操作能力 1) 9种对象权限: Select 、Update、Delete、Insert、Execute、Index、 reference、Alter、Read 2) 对象权限传递 权限: With Grant Option 被授予With Grant Option对象权限的用户,可将该对象权 限授予其他用户
视图User_Users 查看当前用户信息
Oracle 11G数据库应用开发
权限
定义:控制用户在数据库中所能进行的操作 授予权限的方法: 1)直接授予用户:
grant create session to annie;
2)先将权限授予角色,再将角色授予用户:

Create role teach;
Oracle 11G数据库应用开发
权限(续)
3) 谁有权授予对象权限给其他人?
对象的所有者 DBA 被授予With grant option的用户
4) 权限可以授予给谁? 其它用户 角色 Public
Oracle 11G数据库应用开发
系统权限
系统权限(system Privilege):允许执行一组特定 的命令 几点补充:
回收角色权限
revoke select on class from r_ teach 将角色授予用户 Grant r_ teach to annie
Oracle 11G数据库应用开发
角色(续)
从用户回收角色
Revoke annie from r_teach 将角色授予角色 Grant r_teach to r_stu [with admin option] 从角色回收角色
Oracle 11G数据库应用开发
概要文件(续)
创建概要文件
CREATE PROFILE "TEMPPROFILE" LIMIT CPU_PER_SESSION 1000 CPU_PER_CALL 1000 CONNECT_TIME 30 IDLE_TIME DEFAULT SESSIONS_PER_USER 10 LOGICAL_READS_PER_SESSION 1000 LOGICAL_READS_PER_CALL 1000 PRIVATE_SGA 16K COMPOSITE_LIMIT 1000000 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 5 PASSWORD_GRACE_TIME 60 PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_MAX DEFAULT
Role r_Stu
4) Alter User Annie Default Role None
Oracle 11G数据库应用开发
角色(续)
查询角色信息
– –


视图DBA_Roles: 角色信息 视图Role_role_privs:角色与传递权限 信息 视图Role_SYS_privs:角色系统权限 视图Role_tab_privs:角色对象权限
创建用户
Oracle 11G数据库应用开发 密码认证 OS 认证
默认表空间
临时表空间
在表空间上的使用配额 概要文件
是否密码过期
是否锁上用户
Oracle 11G数据库应用开发
准备好网上购物系统的表空间和用户
1、新建一个网上购物系统的表空间tpshopping: 数据文件初始10M大小,增发
系统权限(续)
例子: grant select any to annie;
grant select any to annie with admin option;
Oracle 11G数据库应用开发
权限回收
授予的对象权限和系统权限可以通过Revoke语 句收回 例子: revoke select any from annie;--回收系统权限 revoke select on class from annie; --回收对象权限
相关文档
最新文档