欢迎投稿

今日深度:

oracle用户权限操作sql汇总,oracle用户权限sql

oracle用户权限操作sql汇总,oracle用户权限sql


---用户与权限管理----

--1,用户--

Create User 用户名Identified By "口令"

Default Tablespace 表空间

---指定默认表空间,若不指定,则SYSTEM表空间将被指定为用户的默认表空间,为了提高数据库的性能,同时为了方便管理数据,Oracle建议为用户指定一个默认表空间---

Temporary Tablespace 临时表空间

Quota 空间配额大小 On 表空间

Password Expire

Account Lock|Unlock

点击(此处)折叠或打开

Create User user1 Identified By"1234"

Default Tablespace Users

Temporary Tablespace temp

Quota 20M On Users ---若希望用户在所有表空间上都具有无限制的空间配额,则只要为其指定Unlimited tablespaces系统权限即可---

Password Expire

Account Unlock;

--删除用户--

Drop User 用户名

--需要注意的是,如果一个用户的模式中已经包含一些数据库对象,那么这个用户不能直接删除,必须指定cascade--

Drop User scott Cascade;

--用户的相关信息从数据字典视图dba_users中获得--

Selectusername,Password,default_tablespace,account_status From dba_users;

--修改用户口令--

Password 用户名 --若没有指定用户名,则默认为当前用户--

Alter User 用户Identified By "新口令"

--alter也可以修改其它信息--

Alter User user1

Default Tablespace ts1

Temporary Tablespace ts1

Quota Unlimited On ts1;

--系统权限的管理--

--为用户授予权限的grant命令语法--

Grant 权限1,权限2,... To 用户1,用户2,... With Admin Option; --with admin option的好处是权限的获得者可以再将权限授予其他用户--

---权限包括系统权限和对象权限--

--系统权限--

Create Session,Create Table,CreateResource,Create View,Create User,Create Trigger,Create Tablespace,Createprocedure.

Alter Session,Database,User

--为了使一个用户可以操作数据库,至少需要有create session,create table和有指定(表)空间配额的3个权限--

Grant Create Session,Create Table,UnlimitedTablespace To 用户名;

--回收权限--

--注意:系统权限可以转授,但是回收时不能间接回收--

Revoke 系统权限1,系统权限2 ...

From 用户1,用户2 ...

--对象权限 主要是对数据库对象中的数据的访问权限,这类权限主要针对普通用户--

Grant 对象权限1(列名),对象权限2(列名)...

On 对象 To 用户1,用户2... With Grant Option

Grant Select On dept To user1 With GrantOption

Grant Insert(empno),Update(sal) On emp Touser1,user2

Grant Execute On functional To user1

--回收权限--

--权限insert,update,references在分配时可以指定相关的列,但在回收时不能指定列,而只能指定表名--

Revoke 对象权限1,对象权限2... On 对象

From 用户1,用户2...

Revoke Update(sal) On emp From user2 --错误语句--

Revoke Update On emp From user2

--数据库中所有的系统权限--

Select Name From system_privilege_map;

--sys从数据字典视图dba_sys_privs中查询任何用户所具有的系统权限--

Select grantee,Privilege,admin_option Fromdba_sys_privs Where grantee='SCOTT'

----普通用户通过user_sys_privs查询 用户直接获得的系统权限,即通过grant命令授予当前用户的系统权限---

Select username,Privilege,admin_option Fromuser_sys_privs

--从数据字典视图session_privs中可以查询一个用户在当前会话中所具有的系统权限--

-- session_privs权限==直接获得的权限 + 該用户从角色中间接获得的系统权限 ---

--对象权限有关的数据字典视图:dba_tab_privs,dba_col_privs,user_tab_privs和user_col_privs--

点击(此处)折叠或打开

-- dba_tab_privs 查询任何用户所具有的对象权限 ---

Selectgrantee,Privilege,grantor,table_name,grantable From dba_tab_privs

Where grantee='USER1';

--dba_col_privs 查询用户在列上的权限 --

Selectgrantee,table_name,column_name,Privilege,grantor,grantable

From dba_col_privs Where grantee='USER1';

Selectgrantee,table_name,column_name,Privilege,grantor,grantable

From user_tab_privs Where grantee='SCOTT';

--角色--

--connect角色 包含的权限有createSession --

/* 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 记录当前会话中所使用的角色 */

--获得系统中所有的角色--

Select Role From dba_roles

--查询用户user1所拥有的角色和默认角色--

Select granted_role,default_role Fromdba_role_privs Where grantee='user1'

--查询角色connect所包含的系统权限--

Select Privilege,admin_option Fromrole_sys_privs Where Role='CONNECT'

--profile的管理--

--查询用户的会话信息,强制终止用户会话,锁定用户帐号--

Select username,Sid,serial# From v$sessionWhere username='SCOTT';

Alter System Kill Session '144,7'; --144和7分别为用户会话的sid和serial#--

Alter User scott Account Lock;

--profile创建--

Create Profile profile名称 Limit

口令限制

资源限制

--指定profile 每个用户只能指定一个profile--

Create User user2 Identified By"1234" Profile p1

Alter User scott Profile p1

--从数据字典dba_users中可以获得为每个用户指定的profile-

Select Profile From dba_users Whereusername='SCOTT';

--数据字典dba_profiles--

Select resource_name,Limit Fromdba_profiles Where Profile='P1';

--删除profile--

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天--

Create Profile p1 LimitFailed_Login_Attempts 3 Password_Lock_Time 5

--用户在30天内必须把口令修改过5次后,才能使用过去用过的口令--

Create Profile p2 Limit Password_Reuse_Time30 Password_Reuse_Max 5

--利用profile对用户使用资源进行控制--

如果要使profile对用户使用系统资源起限制作用,则需要将参数Resource_limit的值设置为True

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时间、访问数据块的数量等这些资源进行限制,那么就可以有效地

防止诸如死循环的执行、访问一个大表中的所有数据这类情况的发生。

Create Profile p3 Limit

Sessions_Per_User 100

Logical_Reads_Per_Session 500

Connect_Time 5

Create Profile p4 Limit

Cpu_Per_Call 10

Logical_Reads_Per_Call 50

/* 若没有为用户指定profile文件,则用户会受默认profile限制,如果要对所有用户进行同样的限制,那么只要修改

这个默认profile所包含的限制,并且不要为用户指定其他的profile */

Select resource_name,Limit Fromdba_profiles Where Profile='DEFAULT';

www.htsjk.Com true http://www.htsjk.com/oracle/24259.html NewsArticle oracle用户权限操作sql汇总,oracle用户权限sql ---用户与权限管理---- --1,用户-- Create User 用户名Identified By 口令 Default Tablespace 表空间 ---指定默认表空间,若不指定,则SYSTEM表空间将被指定...
评论暂时关闭