温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle11g 用户与权限管理

发布时间:2020-08-11 06:35:18 来源:ITPUB博客 阅读:182 作者:达芬奇的梦 栏目:关系型数据库
---用户与权限管理----
--1,用户--
Create User 用户名 Identified By "口令"
Default Tablespace 表空间      
---指定默认表空间,若不指定,则SYSTEM表空间将被指定为用户的默认表空间,为了提高数据库的性能,同时为了方便管理数据,Oracle建议为用户指定一个默认表空间---
Temporary Tablespace 临时表空间    
Quota 空间配额大小 On 表空间  
Password Expire
Account Lock|Unlock

点击(此处)折叠或打开

  1. Create User user1 Identified By "1234"
  2. Default Tablespace Users
  3. Temporary Tablespace temp
  4. Quota 20M On Users ---若希望用户在所有表空间上都具有无限制的空间配额,则只要为其指定Unlimited tablespaces系统权限即可---
  5. Password Expire
  6. Account Unlock;
--删除用户--
Drop User 用户名
--需要注意的是,如果一个用户的模式中已经包含一些数据库对象,那么这个用户不能直接删除,必须指定cascade--
Drop User scott Cascade;
--用户的相关信息从数据字典视图dba_users中获得--

  1. Select username,Password,default_tablespace,account_status From dba_users;
--修改用户口令--
Password 用户名   --若没有指定用户名,则默认为当前用户--
Alter User 用户 Identified By "新口令"
--alter也可以修改其它信息--

  1. Alter User user1
  2. Default Tablespace ts1
  3. Temporary Tablespace ts1
  4. Quota Unlimited On ts1;
--系统权限的管理--
--为用户授予权限的grant命令语法--
Grant 权限1,权限2,... To 用户1,用户2,... With Admin Option;   --with admin option的好处是权限的获得者可以再将权限授予其他用户--
---权限包括系统权限和对象权限--
--系统权限--
Create Session,Create Table,Create Resource,Create View,Create User,Create Trigger,Create Tablespace,Create procedure.
Alter Session,Database,User
--为了使一个用户可以操作数据库,至少需要有create session,create table和有指定(表)空间配额的3个权限--
Grant Create Session,Create Table,Unlimited Tablespace To 用户名;
--回收权限--
--注意:系统权限可以转授,但是回收时不能间接回收--
Revoke 系统权限1,系统权限2 ...
From 用户1,用户2 ...
--对象权限    主要是对数据库对象中的数据的访问权限,这类权限主要针对普通用户--
Grant 对象权限1(列名),对象权限2(列名)...
On 对象 To 用户1,用户2... With Grant Option

  1. Grant Select On dept To user1 With Grant Option
  2. Grant Insert(empno),Update(sal) On emp To user1,user2
  3. Grant Execute On functional To user1
--回收权限--
--权限insert,update,references在分配时可以指定相关的列,但在回收时不能指定列,而只能指定表名--
Revoke 对象权限1,对象权限2... On 对象
From 用户1,用户2...

  1. Revoke Update(sal) On emp From user2 --错误语句--
  2. Revoke Update On emp From user2      
--数据库中所有的系统权限--
  1. Select Name From system_privilege_map;
--sys从数据字典视图dba_sys_privs中查询任何用户所具有的系统权限--

  1. Select grantee,Privilege,admin_option From dba_sys_privs Where grantee='SCOTT'
----普通用户通过user_sys_privs查询      用户直接获得的系统权限,即通过grant命令授予当前用户的系统权限---
Select username,Privilege,admin_option From user_sys_privs
--从数据字典视图session_privs中可以查询一个用户在当前会话中所具有的系统权限--
-- session_privs权限==直接获得的权限 + 該用户从角色中间接获得的系统权限  ---
--对象权限有关的数据字典视图:dba_tab_privs,dba_col_privs,user_tab_privs和user_col_privs--

点击(此处)折叠或打开

  1. -- dba_tab_privs 查询任何用户所具有的对象权限 ---
  2. Select grantee,Privilege,grantor,table_name,grantable From dba_tab_privs
  3. Where grantee='USER1';
  4. --dba_col_privs 查询用户在列上的权限 --
  5. Select grantee,table_name,column_name,Privilege,grantor,grantable
  6. From dba_col_privs Where grantee='USER1';
  1. Select grantee,table_name,column_name,Privilege,grantor,grantable
  2. From user_tab_privs Where grantee='SCOTT';
--角色--
--connect角色 包含的权限有create Session --
/* resource角色 包含的权限有 crate sequence,create trigger,create cluster,create procedure,
create type,create operator,create table ,create indextype */
Create Role 角色名
Drop Role 角色名
Grant Select On emp To role1
Revoke Select On emp From role1
--角色信息的查询--
/*  dba_roles            记录数据库中所有角色
dba_role_privs          记录所有被授予用户或另一角色的角色
user_role_privs         记录所有被授予当前用户的角色
role_role_privs         记录一个角色中包含的其他角色
role_sys_privs          记录一个角色中包含的系统权限
role_tab_privs          记录一个角色中包含的对象权限
session_roles           记录当前会话中所使用的角色   */
--获得系统中所有的角色--

  1. Select Role From dba_roles
--查询用户user1所拥有的角色和默认角色--

  1. Select granted_role,default_role From dba_role_privs Where grantee='user1'
--查询角色connect所包含的系统权限--

  1. Select Privilege,admin_option From role_sys_privs Where Role='CONNECT'
--profile的管理--
  1. --查询用户的会话信息,强制终止用户会话,锁定用户帐号--
  2. Select username,Sid,serial# From v$session Where username='SCOTT';
  3. Alter System Kill Session '144,7'; --144和7分别为用户会话的sid和serial#--
  4. Alter User scott Account Lock;
--profile创建--
Create Profile profile名称 Limit
口令限制
资源限制
--指定profile    每个用户只能指定一个profile--

  1. Create User user2 Identified By "1234" Profile p1
  2. Alter User scott Profile p1
--从数据字典dba_users中可以获得为每个用户指定的profile-
  1. Select Profile From dba_users Where username='SCOTT';
  2. --数据字典dba_profiles--
  3. Select resource_name,Limit From dba_profiles Where Profile='P1';
  4. --删除profile--
  5. Drop Profile profile名字 [Cascade];
--Profile限制--
/* Failed_Login_Attempts        允许的失败登录次数,默认值为10次
Password_Lock_Time     账号锁定时间,默认值为1天
Password_Life_Time 口令的有效期,默认值为180天
Password_Grace_Time 口令有效期的延长期,默认值为-周、7天
Password_Reuse_Time 为了再次使用过去用过的口令,必须经过的天数
Password_Reuse_Max 为了再次使用过去用过的口令,必须使用不同口令的次数
Password_Reuse_Time 和 Password_Reuse_Max 必须一起使用  */
--如果用户失败的登录次数达到3次,则用户账号将被锁定5天--

  1. Create Profile p1 Limit Failed_Login_Attempts 3 Password_Lock_Time 5
--用户在30天内必须把口令修改过5次后,才能使用过去用过的口令--

  1. Create Profile p2 Limit Password_Reuse_Time 30 Password_Reuse_Max 5
--利用profile对用户使用资源进行控制--
如果要使profile对用户使用系统资源起限制作用,则需要将参数Resource_limit的值设置为True

  1. Alter System Set resource_limit=True
Sessions_Per_User       一个用户所允许的并发会话数目
Cpu_Per_Session   用户在一个会话内所使用的Cpu时间的总和,时间单位为0.01秒
Logical_Reads_Per_Session 用户在一个会话内所能访问的数据块的数量(包括物理读和逻辑读的数量)
Connect_Time 一个用户会话所能持续的时间,以分钟为单位;超过这个时间,会话将自动断开
Idle_Time 一个用户会话所允许的连续的空闲时间,以分钟为单位,超过这个时间,会话将自动断开
Private_Sga 如果数据库服务器的连接模式为共享模式,这个参数用来限制为一个用户会话所分配的Sga空间
Cpu_Per_Call 用户执行的每条命令所使用的Cpu时间,时间单位为0.01秒
Logical_Reads_Per_Call 用户执行的每条命令所能访问的数据块的数量
如果能够对用户消耗Cpu时间、访问数据块的数量等这些资源进行限制,那么就可以有效地
防止诸如死循环的执行、访问一个大表中的所有数据这类情况的发生。
  1. Create Profile p3 Limit
  2. Sessions_Per_User 100
  3. Logical_Reads_Per_Session 500
  4. Connect_Time 5
  1. Create Profile p4 Limit
  2. Cpu_Per_Call 10
  3. Logical_Reads_Per_Call 50
/* 若没有为用户指定profile文件,则用户会受默认profile限制,如果要对所有用户进行同样的限制,那么只要修改
这个默认profile所包含的限制,并且不要为用户指定其他的profile */

  1. Select resource_name,Limit From dba_profiles Where Profile='DEFAULT';

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI