范例:创建一个新的用户:c##mldnuser,密码为:java_android

CREATE USER c##mldnuser
IDENTIFIED BY java_android
DEFAULT TABLESPACE mldn_data
TEMPORARY TABLESPACE mldn_temp
QUOTA 30M ON mldn_data
QUOTA 20M ON users
ACCOUNT UNLOCK
PASSWORD EXPIRE ;

 

范例:通过dba_users查看用户信息

SELECT username,user_id,default_tablespace,temporary_tablespace,created,lock_date,profile
FROM dba_users
WHERE username='C##MLDNUSER';


范例:通过dba_ts_quotas查看用户可用表空间配额

SELECT * FROM dba_ts_quotas WHERE username='C##MLDNUSER' ;


范例:定义一个概要文件

CREATE PROFILE c##mldn_profile LIMIT
CPU_PER_SESSION 10000
LOGICAL_READS_PER_SESSION 20000
CONNECT_TIME 60
IDLE_TIME 30
SESSIONS_PER_USER 10
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 30
PASSWORD_GRACE_TIME 6 ;

 

范例:查询dba_profiles数据字典

SELECT * FROM dba_profiles WHERE profile='C##MLDN_PROFILE' ;


范例:创建用户时指定概要文件

CREATE USER c##mldnjava IDENTIFIED BY hello
PROFILE c##mldn_profile ;

 

范例:配置已存在用户使用的概要文件

ALTER USER c##mldnuser PROFILE c##mldn_profile ;


范例:查看dba_users数据字典,观察c##mldnjava和c##mldnuser两个用户的定义

SELECT username,user_id,default_tablespace,temporary_tablespace,created,lock_date,profile
FROM dba_users
WHERE username IN ('C##MLDNJAVA','C##MLDNUSER') ;


范例:修改概要文件

ALTER PROFILE c##mldn_profile LIMIT
CPU_PER_SESSION 1000
PASSWORD_LIFE_TIME 10 ;


范例:删除c##mldn_profile概要文件

DROP PROFILE c##mldn_profile CASCADE ;

 

范例:修改c##mldnuser的密码为:hellojava

ALTER USER c##mldnuser IDENTIFIED BY hellojava ;


范例:将c##mldnuser用户设置为锁定状态

ALTER USER c##mldnuser ACCOUNT LOCK ;


范例:通过dba_users查看mldnuser用户的锁定信息

SELECT username,user_id,default_tablespace,temporary_tablespace,created,lock_date,profile
FROM dba_users
WHERE username='C##MLDNUSER';


范例:将c##mldnuser用户解锁

ALTER USER c##mldnuser ACCOUNT UNLOCK ;


范例:让c##mldnuser密码失效

ALTER USER c##mldnuser PASSWORD EXPIRE ;


范例:修改c##mldnuser用户的表空间配额

ALTER USER c##mldnuser
QUOTA 20M ON system
QUOTA 35M ON users ;


范例:通过dba_ts_quotas数据字典查看mldnuser用户新的表空间配额

SELECT * FROM dba_ts_quotas WHERE username='C##MLDNUSER' ;


范例:删除c##mldnuser用户

DROP USER c##mldnuser ;

 

范例:为c##mldnuser用户授予CREATE SESSION权限

GRANT CREATE SESSION TO c##mldnuser ;

 

范例:为c##mldnuser用户授权

GRANT CREATE TABLE , CREATE SEQUENCE  , CREATE VIEW TO c##mldnuser WITH ADMIN OPTION ;

 

范例:利用c##mldnuser用户登录,而后将创建表、以及创建序列的权限授予c##mldnjava用户

GRANT CREATE TABLE , CREATE SEQUENCE TO c##mldnjava ;

 

范例:通过dba_sys_privs数据字典查看用户权限

SELECT *
FROM dba_sys_privs
WHERE grantee IN ('C##MLDNJAVA' , 'C##MLDNUSER')
ORDER BY grantee DESC ;


范例:将c##mldnuser用户的CREATE VIEW、CREATE TABLE权限回收

REVOKE CREATE TABLE , CREATE VIEW FROM c##mldnuser ;

 

范例:通过dba_sys_privs数据字典查看用户权限

SELECT *
FROM dba_sys_privs
WHERE grantee IN ('C##MLDNJAVA' , 'C##MLDNUSER')
ORDER BY grantee DESC ;


范例:通过c##mldnuser用户回收c##mldnjava用户的CREATE SEQUENCE权限

REVOKE CREATE SEQUENCE FROM c##mldnjava ;


范例:通过c##mldnuser无法访问c##scott用户下的资源

SELECT * FROM c##scott.dept ;


范例:为c##mldnuser用户授予c##scott用户dept表的查询以及增加权限

GRANT SELECT , INSERT ON c##scott.dept TO c##mldnuser ;

 

范例:将c##scott.dept数据表更新部门名称(dname)的权限授予c##mldnuser用户

GRANT UPDATE(dname) ON c##scott.dept TO c##mldnuser ;


范例:查询当前登录用户下的所有对象权限

CONN c##mldnuser/hellojava
COL owner FOR A10 ;
COL table_name FOR A10 ;
COL grantor FOR A10 ;
COL privilege FOR A10 ;
SELECT * FROM user_tab_privs_recd ;


范例:查询“user_col_privs_recd”数据字典

COL owner FOR A10 ;
COL table_name FOR A10 ;
COL column_name FOR A15 ;
COL grantor FOR A10 ;
COL privilege FOR A10 ;
SELECT * FROM user_col_privs_recd ;


范例:回收c##scott.dept上的相关权限

REVOKE SELECT , INSERT ON c##scott.dept FROM c##mldnuser ;
REVOKE UPDATE ON c##scott.dept FROM c##mldnuser ;

 

范例14-13:创建角色的基本语法

CREATE ROLE 角色名称 
[NOT IDENTIFIED | IDENTIFIED BY 密码 ;

 

范例:创建一个普通的角色

CREATE ROLE c##mldn_role_a ;

 

范例:创建一个带有密码的角色

CREATE ROLE c##mldn_role_b IDENTIFIED BY hellojava ;

 

范例:禁用当前会话中的所有角色

SET ROLE NONE ;


范例:启用当前会话中的所有角色

SET ROLE ALL ;


范例:启用c##mldn_role_b角色,此角色存在密码

SET ROLE c##mldn_role_b IDENTIFIED BY hellojava ;

 

范例:查看dba_roles数据字典

SELECT *
FROM dba_roles
WHERE role IN ('C##MLDN_ROLE_A','C##MLDN_ROLE_B');


范例:为c##mldn_role_a角色授权

GRANT CREATE SESSION , CREATE TABLE , CREATE VIEW , CREATE SEQUENCE TO c##mldn_role_a ;

 

范例:为c##mldn_role_b角色授权

GRANT CREATE SESSION , CREATE ANY TABLE , INSERT ANY TABLE TO c##mldn_role_b ;

 

范例:查询role_sys_privs数据字典

SELECT *
FROM role_sys_privs
WHERE role IN ('C##MLDN_ROLE_A' , 'C##MLDN_ROLE_B')
ORDER BY role ;


范例:将c##mldn_role_a的角色授予c##mldnuser用户

GRANT c##mldn_role_a TO c##mldnuser ;


范例:将c##mldn_role_a和c##mldn_role_b的角色授予c##mldnjava用户

GRANT c##mldn_role_a ,c##mldn_role_b TO c##mldnjava ;


范例:查询c##mldnuser用户权限

CONN c##mldnuser/hellojava
COL privilege FOR A30 ;
SELECT * FROM session_privs ;



范例:将c##mldn_role_a的角色密码设置为hellomldn

ALTER ROLE c##mldn_role_a IDENTIFIED BY hellomldn ;


范例:取消c##mldn_role_b角色的密码

ALTER ROLE c##mldn_role_b NOT IDENTIFIED ;


范例:将CREATE SESSION的权限从c##mldn_role_a角色中回收

REVOKE CREATE SESSION FROM c##mldn_role_a ;


范例:查询c##mldn_role_a角色中的权限信息

SELECT *
FROM role_sys_privs
WHERE role='C##MLDN_ROLE_A'
ORDER BY role ;


范例:删除c##mldn_role_b角色

DROP ROLE c##mldn_role_b ;

 

范例:通过sys用户查询CONNECT和RESROUCE角色所拥有的权限

SELECT *
FROM role_sys_privs
WHERE role IN ('CONNECT' , 'RESOURCE')
ORDER BY role ;


范例:将CONNECT、RESOURCE角色授予c##mldnuser用户

GRANT CONNECT , RESOURCE TO c##mldnuser ;