范例:创建一个新的用户: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用户
范例:为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 ;
|
范例:禁用当前会话中的所有角色
范例:启用当前会话中的所有角色
范例:启用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 ;
|