您的位置:首页 > 数据库 > Oracle

《Oracle从入门到精通》读书笔记第十二章 用户管理和权限分配

2014-03-18 12:44 429 查看
12.1 用户与模式的关系sysdba sysopersysdba不仅具备所有sysoper的所有权限,而且还可以建立数据库,执行不完全恢复
12.2 创建和管理用户12.2.1 身份验证三种验证方法:1、密码验证(最常用)2、外部验证3、全局验证
12.2.2 创建用户语法格式:create user user_name identified by pass_word[or identified exeternally][or identified globally as 'CN=user'][default tablespace tablespace_name][temporary tablespace tablespace_name][quota [integer k[m]][unlimited] on tablespace_specify1, quota [integer k[m]][unlimited] on tablespace_specify2, ...][profiles profile_name][account lock or account unlock]
create user mr identified by mrsoftdefault tablespace userstemporary tablespace temp;
create user east identified by mrsoftdefault tablespace userstemporary tablespace tempquota 10m on ts_1;
create user df identified by mrsoftdefault tablespace ts_1temporary tablespace tempquota unlimited on ts_1;
创建完用户后,需要注意一下几点:1、建立用户时不指定default tablespace,会将system表空间作为用户的默认表空间2、建立用户时不指定temporary tablespace,会将temp表空间作为用户的临时表空间3、初始建立的用户没有任何权限,所以为了使刚建立的用户连接到数据库,必须授权其create session权限4、建立用户时没有为表空间指定quota语句,那么用户在特定表空间的配额为0,用户不能在相应的表空间上建立对象5、初始建立的用户没有任何权限,不能执行任何数据库操作
12.2.3 修改用户语法格式:alter user user_name identified by pass_word[or identified exeternally][or identified globally as 'CN=user'][default tablespace tablespace_name][temporary tablespace tablespace_name][quota [integer k[m]][unlimited] on tablespace_specify1, quota [integer k[m]][unlimited] on tablespace_specify2, ...][profiles profile_name][account lock or account unlock]
1、修改用户的磁盘配额alter user eastquota 20m on ts_1;
2、修改用户口令alter user east identified by 123456;
3、解锁被锁住的用户SQL> select username,account_status from dba_users;USERNAME ACCOUNT_STATUS------------------------------ --------------------------------DF OPENSCOTT OPENHR OPENORACLE_OCM EXPIRED & LOCKEDXS$NULL EXPIRED & LOCKEDBI EXPIRED & LOCKEDPM EXPIRED & LOCKEDMDDATA EXPIRED & LOCKEDIX EXPIRED & LOCKEDSH EXPIRED & LOCKEDDIP EXPIRED & LOCKEDOE EXPIRED & LOCKEDAPEX_PUBLIC_USER EXPIRED & LOCKEDSPATIAL_CSW_ADMIN_USR EXPIRED & LOCKEDSPATIAL_WFS_ADMIN_USR EXPIRED & LOCKEDMR OPENEAST OPENFLOWS_FILES EXPIRED & LOCKEDMDSYS EXPIRED & LOCKEDORDSYS EXPIRED & LOCKEDUSERNAME ACCOUNT_STATUS------------------------------ --------------------------------EXFSYS EXPIRED & LOCKEDDBSNMP EXPIRED & LOCKEDWMSYS EXPIRED & LOCKEDAPPQOSSYS EXPIRED & LOCKEDAPEX_030200 EXPIRED & LOCKEDOWBSYS_AUDIT EXPIRED & LOCKEDORDDATA EXPIRED & LOCKEDCTXSYS EXPIRED & LOCKEDANONYMOUS EXPIRED & LOCKEDSYSMAN EXPIRED & LOCKEDXDB EXPIRED & LOCKEDORDPLUGINS EXPIRED & LOCKEDOWBSYS EXPIRED & LOCKEDSI_INFORMTN_SCHEMA EXPIRED & LOCKEDOLAPSYS EXPIRED & LOCKEDSYS OPENSYSTEM OPENOUTLN EXPIRED & LOCKEDMGMT_VIEW EXPIRED & LOCKED39 rows selectedSQL> alter user sh account unlock;User altered
12.2.4 删除用户语法格式:drop user user_name [cascade]
SQL> drop user df cascade;User dropped
12.3 用户权限管理12.3.1 权限简介系统权限:对象权限:
12.3.2 授权操作语法格式:grant sys_privi | role to user | role | public [with admin option]
SQL> grant connect,resource to east;Grant succeededSQL> conn east/123456;Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0Connected as east
create user dongfang identified by 123456default tablespace usersquota 10m on users;
create user xifang identified by 123456default tablespace usersquota 10m on users;
SQL> grant create session,create table to dongfang with admin option;Grant succeeded
SQL> conn dongfang/123456Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0Connected as dongfangSQL> grant create session,create table to xifang;Grant succeededSQL> conn xifang/123456;Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0Connected as xifangSQL> create table tb_xifang 2 ( 3 id number, 4 name varchar2(20) 5 );Table created
12.3.3 回收系统权限语法格式:revoke sys_privi | role from user|role|public
SQL> revoke resource from east;Revoke succeeded
如果数据库管理员用GRANT命令给用户A授予系统权限是带有with admin option选项,则该用户A有权将系统权限再次授予另外的用户B。在这种情况下,如果数据库管理员使用revoke命令撤销用户A的系统权限,则用户B的权限依然有效。
SQL> revoke create table from dongfang;Revoke succeeded

SQL> conn xifang/123456;Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0Connected as xifangSQL> create table tb_xifang_2 2 ( 3 id number, 4 name varchar2(20) 5 );Table created
12.3.4 对象授权语法格式:grant obj_privi | all column on schema.object to user | role | public [with admin option] | [with hierarchy option]
SQL> grant select,insert,delete,update on scott.emp to xifang;Grant succeeded
12.3.5 回收对象权限语法格式:revoke obj_privi | all on schema.object from user | role | public cascade constraints
SQL> revoke delete,update on scott.emp from xifang;Revoke succeeded
如果数据库管理员用GRANT命令给用户A授予对象权限是带有with admin option选项,则该用户A有权将系统权限再次授予另外的用户B。在这种情况下,如果数据库管理员使用revoke命令撤销用户A的对象权限,则用户B的对象权限也会被收回。
12.3.6 查询用户与权限存放用户、系统权限、对象权限有关的数据字典
数据字典名称说明
DBA_USERS数据库用户基本信息
DBA_SYS_PRIVS已授予用户或角色的系统权限
DBA_TAB_PRIVS数据库对象上的所有权限
USER_SYS_PRIVS登陆用户可以查看自己的系统权限
ROLE_SYS_PRIVS登陆用户可以查看自己的角色
ALL_TABLES用户自己可以查询的基表信息
USER_TAB_PRIVS用户自己将哪些基表权限授予哪些用户
ALL_TAB_PRIVS哪些用户给自己授权
12.4 角色管理12.4.1 角色概述角色是一个独立的数据库实体,包括一组权限12.4.2 预定义角色SQL> set pagesize 50;SQL> select * from dba_roles;ROLE PASSWORD_REQUIRED AUTHENTICATION_TYPE------------------------------ ----------------- -------------------CONNECT NO NONERESOURCE NO NONEDBA NO NONESELECT_CATALOG_ROLE NO NONEEXECUTE_CATALOG_ROLE NO NONEDELETE_CATALOG_ROLE NO NONEEXP_FULL_DATABASE NO NONEIMP_FULL_DATABASE NO NONELOGSTDBY_ADMINISTRATOR NO NONEDBFS_ROLE NO NONEAQ_ADMINISTRATOR_ROLE NO NONEAQ_USER_ROLE NO NONEDATAPUMP_EXP_FULL_DATABASE NO NONEDATAPUMP_IMP_FULL_DATABASE NO NONEADM_PARALLEL_EXECUTE_TASK NO NONEGATHER_SYSTEM_STATISTICS NO NONEJAVA_DEPLOY NO NONERECOVERY_CATALOG_OWNER NO NONESCHEDULER_ADMIN NO NONEHS_ADMIN_SELECT_ROLE NO NONEHS_ADMIN_EXECUTE_ROLE NO NONEHS_ADMIN_ROLE NO NONEGLOBAL_AQ_USER_ROLE GLOBAL GLOBALOEM_ADVISOR NO NONEOEM_MONITOR NO NONEWM_ADMIN_ROLE NO NONEJAVAUSERPRIV NO NONEJAVAIDPRIV NO NONEJAVASYSPRIV NO NONEJAVADEBUGPRIV NO NONEEJBCLIENT NO NONEJMXSERVER NO NONEJAVA_ADMIN NO NONECTXAPP NO NONEXDBADMIN NO NONEXDB_SET_INVOKER NO NONEAUTHENTICATEDUSER NO NONEXDB_WEBSERVICES NO NONEXDB_WEBSERVICES_WITH_PUBLIC NO NONEXDB_WEBSERVICES_OVER_HTTP NO NONEORDADMIN NO NONEOLAPI_TRACE_USER NO NONEOLAP_XS_ADMIN NO NONEOWB_USER NO NONEOLAP_DBA NO NONECWM_USER NO NONEROLE PASSWORD_REQUIRED AUTHENTICATION_TYPE------------------------------ ----------------- -------------------OLAP_USER NO NONESPATIAL_WFS_ADMIN NO NONEWFS_USR_ROLE YES PASSWORDSPATIAL_CSW_ADMIN YES PASSWORDCSW_USR_ROLE YES PASSWORDMGMT_USER NO NONEAPEX_ADMINISTRATOR_ROLE NO NONEOWB$CLIENT YES PASSWORDOWB_DESIGNCENTER_VIEW NO NONE55 rows selected
常用预定义角色connectresourcedbaexp_full_databaseimp_full_database
12.4.3 创建角色与授权语法格式:create role role_name [not identified | identified by [password] | [exeternally] | [globally]]
SQL> create role designer identified by 123456;Role created
SQL> grant create view,create table to designer;Grant succeeded
SQL> grant designer to dongfang;Grant succeeded
12.4.4 管理角色1、查看角色包含的权限SQL> select * from role_sys_privs where role='DESIGNER';ROLE PRIVILEGE ADMIN_OPTION------------------------------ ---------------------------------------- ------------DESIGNER CREATE TABLE NODESIGNER CREATE VIEW NO
2、修改角色密码SQL> alter role designer not identified;Role alteredSQL> alter role designer identified by 123456;Role altered
3、设置当前用户要生效的角色只有角色生效了,角色内的权限才能作用于用户。最大可生效角色数由参数MAX_ENABLED_ROLES设定SQL> set role designer identified by 123456;Role set
SQL> create role queryer;Role createdSQL> set role queryer;Role set
4、删除角色SQL> drop role queryer;Role dropped
12.4.5 角色与权限的查询存放用户、角色及权限的相关数据字典
数据字典名称说明
DBA_COL_PRIVS数据库列上的所有权限
DBA_ROLE_PRIVS显示已经授予用户或其他角色的角色
DBA_TAB_PRIVS数据库对象上的所有权限
DBA_SYS_PRIVS已授予用户或角色的系统权限
SQL> select granted_role,default_role from dba_role_privs where grantee='SCOTT';GRANTED_ROLE DEFAULT_ROLE------------------------------ ------------RESOURCE YESCONNECT YES
通过session_role数据字典查询当前会话中的所有有效角色SQL> conn scott/tiger;Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0Connected as scottSQL> select * from session_roles;ROLE------------------------------CONNECTRESOURCE
12.5 资源配置PROFILE12.5.1 profile概述profile作为用户配置文件,它是密码限制、资源限制的命名集合。在安装数据库时,oracle会自动建立名为default的默认配置文件使用profile文件时需要注意如下事项:a、建立用户时,如果不指定profile选项,oracle会自动将default分配给相应的数据库用户b、建立profile文件时,如果只设置了部分密码和资源限制选项,其他选项会自动使用默认值,即使default文件中有相应选项的值c、使用profile管理密码时,密码管理选项总是处于被激活状态,但如果使用profile管理资源,必须激活资源限制d、一个用户只能分配一个profile文件。如果要同时管理用户的密码和资源,那么在建立profile时应该同时指定密码和资源选项
12.5.2 使用profile管理密码4种密码管理:账号锁定、密码的过期时间、密码历史和密码复杂度1、账号锁定两个参数:failed_login_attempts:登陆尝试的次数password_lock_time:账户被锁定的天数
create profile lock_accout limitfailed_login_attempts 5password_lock_time 7;
SQL> alter user dongfang profile lock_accout;User altered
2、密码的过期时间两个参数:password_life_time:密码的有效天数password_grace_time:密码失效的宽限时间
create profile password_life_time limitpassword_life_time 30password_grace_time 3;
SQL> alter user dongfang profile password_life_time;User altered
3、密码历史两个参数:password_reuse_time:指定密码在多少天后可以重复使用password_reuse_max:设置密码在能够被重新使用之前,必须改变的次数
4、密码的复杂度
12.5.3 使用profile管理资源SQL> show parameter resource_limit;NAME TYPE VALUE------------------------------------ ----------- ------------------------------resource_limit boolean FALSESQL> alter system set resource_limit=true;System altered
SQL> show parameter resource_limit;NAME TYPE VALUE------------------------------------ ----------- ------------------------------resource_limit boolean TRUE
利用profile文件,可以对以下资源进行限制:a、cpu时间b、逻辑读c、用户的并发会话数d、会话空闲的限制e、会话可持续的时间f、会话所使用的SGA空间限制
资源限制的参数;session_per_user:用户可以同时连接的会话数cpu_per_session:会话的cpu时间限制,单位为百分之一秒cpu_per_call:每条SQL语句能使用的CPU时间,单位为百分之一秒logic_reads_per_session:每个会话所能读取的数据块数量connect_time:限制每个用户能够连接到数据库的最长时间,以分钟为单位idle_time:对话容许连续不活动的总的时间,以分钟为单位
12.5.4 维护profile文件1、修改profile文件alter profile password_life_time limitcpu_per_session 20000sessions_per_user 10cpu_per_call 500password_life_time 180failed_login_attempts 10;
2、删除profile文件SQL> drop profile password_life_time cascade;Profile dropped
12.5.5 显示profile信息1、显示用户的资源配置信息SQL> select profile from dba_users where username='DONGFANG';PROFILE------------------------------DEFAULT
2、显示指定profile文件的资源配置信息SQL> select * from dba_profiles where profile='LOCK_ACCOUT';PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT------------------------------ -------------------------------- ------------- --------------------LOCK_ACCOUT COMPOSITE_LIMIT KERNEL DEFAULTLOCK_ACCOUT SESSIONS_PER_USER KERNEL DEFAULTLOCK_ACCOUT CPU_PER_SESSION KERNEL DEFAULTLOCK_ACCOUT CPU_PER_CALL KERNEL DEFAULTLOCK_ACCOUT LOGICAL_READS_PER_SESSION KERNEL DEFAULTLOCK_ACCOUT LOGICAL_READS_PER_CALL KERNEL DEFAULTLOCK_ACCOUT IDLE_TIME KERNEL DEFAULTLOCK_ACCOUT CONNECT_TIME KERNEL DEFAULTLOCK_ACCOUT PRIVATE_SGA KERNEL DEFAULTLOCK_ACCOUT FAILED_LOGIN_ATTEMPTS PASSWORD 5LOCK_ACCOUT PASSWORD_LIFE_TIME PASSWORD DEFAULTLOCK_ACCOUT PASSWORD_REUSE_TIME PASSWORD DEFAULTLOCK_ACCOUT PASSWORD_REUSE_MAX PASSWORD DEFAULTLOCK_ACCOUT PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULTLOCK_ACCOUT PASSWORD_LOCK_TIME PASSWORD 7LOCK_ACCOUT PASSWORD_GRACE_TIME PASSWORD DEFAULT16 rows selected本文出自 “石头记” 博客,请务必保留此出处http://stonebox.blog.51cto.com/5409313/1378513
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: