范例:创建一个新的用户: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 ; |