1、用户管理
用户管理分为创建用户、修改用户信息、删除用户。
1.1、创建用户
创建用户语法:
CREATE USER username IDENTIFIED BY password
OR EXTERNALLY AS cetificate_CN
OR GLOBALLY AS directory_DN
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE tablespace|tablespace_group_name]
[QUOTA size|UNLIMITED ON tablespace]
[PROFILE profile]
[PASSWORD EXPIRE]
[ACCOUNT LOCK|UNLOCK]
IDENTIFIED BY password :以密码的方式验证
EXTERNALLY AS cetificate_CN:以外部作为验证的 方式
GLOBALLY AS directory_DN :以全局作为验证的方式
[DEFAULT TABLESPACE tablespace] :设置默认表空间
[TEMPORARY TABLESPACE tablespace|tablespace_group_name] :设置临时表空间或表空间组
[QUOTA size|UNLIMITED ON tablespace]:设置用户在该表空间使用的最大值,UNLIMITED表示不限制。
[PROFILE profile]:当前用户使用的概要文件的名称。省略表示使用当前数据库默认的概要文件。
[PASSWORD EXPIRE]:设置当前用户的 密码处于立即过期状态。要登陆就要修改密码。
[ACCOUNT LOCK|UNLOCK]:表示该用户的状态是否处于锁定状态。
1.2、修改用户信息
修改用户信息语法:
ALTER USER username IDENTIFIED
{ BY password [REPLACE old_password]
| EXTERNALLY [AS 'cetificate_CN' ]
| GLOBALLY [AS 'directory_DN' ]
}
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE tablespace|tablespace_group_name]
[QUOTA size|UNLIMITED ON tablespace]
[PROFILE profile]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK|UNLOCK}]
1.3、删除用户
删除用户语法:
DROP USER user CASCADE
2、权限管理
在Oracle数据库中,权限分为两种:系统权限、对象权限。
系统权限:SESSION权限、USER权限,对数据库系统级别的操作称为系统权限。
对象权限:对表对象、序列、触发器等操作的权限。
###2.1、授予用户系统权限
授予用户系统权限语法:
GRANT system_privilege|ALL PRIVILEGE
TO {user IDENTIFIED BY password |role| } [WITH ADMIN OPTION]
语法说明:
system_privilege:创建的系统权限名称
ALL PRIVILEGE:表示可以设置除了SELECT ANY DICTIONARY权限之外的所有权限。
{user IDENTIFIED BY password |role| } :设置指定用户的权限,role代表的是设置角色的权限。
[WITH ADMIN OPTION]:表示当前进行授权的用户可以给其他用户进行系统授权。
实例:
GRANT create session to USER1 WITH ADMIN OPTION
2.2、授予用户对象权限
授予用户对象权限语法:
GRANT object_privilege|ALL ON schema.object
TO user|role [WITH ADMIN OPTION] [WITH THE GRANT ANY OBJECT]
语法说明:
object_privilege:对象权限的名称
ALL :授予用户所有的对象权限。
schema.object:为用户授予的对象权限使用的对象
user|role:user是用户、role是角色
WITH ADMIN OPTION:给当前用户授权后,该用户还可以给其他用户进行系统授权。
WITH THE GRANT ANY OBJECT:给当前用户授权后,该用户还可以给其他用户进行对象授权。
示例:
GRANT DELETE ON AA TO USER1
2.3、撤销权限:
撤销权限也叫收回权限;也就是删除用户的系统权限或者对象权限。
2.3.1、撤销系统权限
撤销系统权限前提是当前的用户已存在需要撤销的权限,另外撤销权限只有数据管理员才能操作:
撤销系统权限语法:
REVOKE system_privilege FROM user|role
示例:
REVOKE create session FROM user1
2.3.2、撤销对象权限
撤销对象权限语法:
REVOKE system_privilege|ALL ON schma.object
FROM user|role
[CASCADE CONTRAINTS]
示例:
REVOKE DELETE ON AA FROM user1
说明:
撤销用户的系统权限,该用户授予的其他用户的系统权限仍然存在;
撤销用户的对象权限,该用户授予的其他用户对象权限也被撤销了。
2.4、查询用户的权限
数据字典DBA_SYS_PRIVS:存放用户的 系统权限
数据字典DBA_TAB_PRIVS :存放用户的 对象权限
示例:查询ANONYMOUS用户的系统权限。
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='ANONYMOUS'
3、角色管理
角色:一组权限的集合(使用角色后可以方便管理员对用户的权限进行管理)。
用户是数据库的使用者,角色是数据库权限授予的对象。给用户授予一个角色可以理解成给用户授予一组权限。一个角色可以被多个用户所拥有,一个用户也可以具有多个角色。
3.1、创建角色
创建角色分成两个步骤:创建角色、授予角色权限
3.1.1、创建角色语法:
CREATE ROLE role
[NOT IDENTIFIED|
IDENTIFIED BY [password]|
IDENTIFIED BY EXETERNALLY|IDENTIFIED GLOBALLY]
语法说明:
NOT IDENTIFIED:不需要验证
IDENTIFIED BY [password]:密码验证
IDENTIFIED BY EXETERNALL:外部验证
IDENTIFIED GLOBALLY:全局验证
3.1.2、授予角色权限语法:
GRANT system_tem_privilege | ALL PRIVILEGES TO role [WITH ADMIN OPTION]
3.2、设置角色
角色创建之后还没有生效,当角色赋予用户之后才能生效:
角色赋予用户的语法:
GRANT role TO user
设置用户的角色生效:
SET ROLE role
SET ROLE ALL
SET ROLE ALL EXCEPT
SET ROLE NONE
语法说明:
SET ROLE role : 指定的角色生效
SET ROLE ALL:使所以角色都生效
SET ROLE ALL EXCEPT role:除了role角色,其他的生效
SET ROLE NONE :设置所有角色失效
3.3、修改角色
修改角色的语法:
ALTER ROLE role
[NOT IDENTIFIED|
IDENTIFIED BY [password]|
IDENTIFIED BY EXETERNALLY|IDENTIFIED GLOBALLY]
3.4、删除角色
删除角色的语法:
DROP.ROLE rolename
###3.5、查询角色
在数据字典(DBA_ROLE_PRIVS)中查询角色:
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='SYSTEM'
查询SYSTEM角色。
4、概要文件PROFILE
PROFILE概要文件:存放数据库中的系统资源、数据库中使用限制的一些内容。
4.1、创建PROFILE
创建概要文件的语法:
CREATE PROFILE profile LIMIT {resource_parameters | password_parameters}
语法说明:
resource_parameters:资源参数
CPU_PER_SESSION一个会话占用整个CPU的总量
CPU_PER_CALL一个调用占用CPU最大值
CONNECT_TIME一个持续的会话的最大值
password_parameters:口令参数
PASSWORD_LIFE_TIME口令多少天后失效
PASSWORD_REUSE_TIME密码保留的时间
4.2、删除PROFILE
删除概要文件的语法:
DROP PROFILE profile [CASCADE]
CASCADE : 当概要文件已经被使用,就加上该关键字。
4.3、查询PROFILE
查询概要文件使用DBA_PROFILES数据字典:
SELECT * FROM DBA_PROFILES