日期:2014-05-16 浏览次数:20464 次
53.create user devep identified by devep
default tablespace user01
temporary tablespace temp
quota 3m on user01
password expire;
?
alter user devep account lock;
alter user devep account unlock;
alter user devep default role select_role;
select sid,serial# from v$session where username=’u1’;
alter system kill session ‘8,25’;
drop user u1 cascade;
?
显示特权用户
select * from v$pwfile_users;
select username, default_tablespace, temporary_tablespace from dba_users;
显示用户表空间配额
select tablespace_name,bytes,max_bytes from dba_ts_quotas where username=’DEVEP’; user_ts_quotas
54.常用系统权限
create session
create table
create view
create public synonym
create sequence
create procedure
create trigger
create cluster
create type
create database link
ANY系统权限
当初始化参O7_DICTIONARY_ACCESSIBILITY被设置为false,除SYSDBA和DBA用户外,即使用户具有select any table权限,也不能访问数据字典基表和数据字典视图DBA_XXX
grant system_priv… to user|role|PUBLIC with admin option
revoke system_priv… to user|role|PUBLIC
?
显示所有系统权限
Select name from system_privilege_map;
DBA_SYS_PRIVS:显示所有用户或角色所具有的系统权限
USER_SYS_PRIVS:显示当前用户所具有的系统权限
SESSION_PRIVS:显示当前会话所具有的系统权限
?
对象权限
alter
delete
execute
index
insert
references
select
update
grant object_priv… on schema.object to user|role|PUBLIC with grant option
revoke object_priv… on schema.object to user|role|PUBLIC
?
显示对象权限
DBA_TAB_PRIVS:所有用户或角色的对象权限
ALL_TAB_PRIVS,USER_TAB_PRIVS:当前用户或PUBLIC的对象权限
Select grantor, owner||’.’||table_name object, privilege from dba_tab_privs
Where grantee=’BLAKE’;
显示列权限
DBA_COL_PRIVS
ALL_COL_PRIVS
USER_COL_PRIVS
显示用户授出的列权限
ALL_COL_PRIVS_MADE
USER_COL_PRIVS_MADE
系统权限unlimited tablespace不能授予角色
with grant option选项不能授予角色
?
55.
用户-用户角色-应用角色-应用权限
预定义角色是Oracle提供的角色,这些角色是在建立数据库、安装数据字典视图和PL/SQL包时建立的,并且每种角色都用于执行一些特定管理任务。
connect:alter session,create cluster,create database link,create sequence,create session,create public synonym,create table,create view
resource:create cluster,create indextype,create procedure,create sequence,create table,create trigger,create type
dba:该角色具有所有系统权限和WITH ADMIN OPTION选项。默认DBA用户为SYSTEM,该用户可以将系统权限授予其他用户。DBA角色不具备SYSDBA和SYSOPER特权,而SYSDBA特权自动具有DBA角色的所有特权
execute_catalog_role:提供了对所有系统PL/SQL包(DBMS_XXX)的execute对象权限
select_catalog_role:提供了对所有数据字典(DBA_XXX)上的select对象权限
delete_catalog_role:提供了系统审计表SYS.AUD$上的delete对象权限
exp_full_database
imp_full_database
recovery_catalog_owner:为恢复目录所有者提供了系统权限
?
建立角色
create role public_role not identified
create role private_role identified by private
grant create session to public_role with admin option;
grant select,insert,update,delete on scott.emp to private_role;
grant public_role,private_role to blake with admin option;
默认角色
alter user blake default role public_role;
激活角色:非验证
set role public_role;
exec dbms_session.set_role('public_role')
激活角色:数据库验证
set role private_role identified by private;
exec dbms_session.set_role('private_role->identified by private')
禁止角色
set role none;
exec dbms_session.set_role('NONE')
修改角色,删除角色
系统权限UNLIMITED TABLESPACE和对象权限的WITH GRANT OPTION选项不能授予角色
不能用一条GRANT语句同时授予系统权限和对象权限
?
显示所有角色
select * from dba_roles;
显示用户具有的角色及默认角色
DBA_ROLE_PRIVS:显示用户或角色所具有的角色信息
ROLE_ROLE_PRIVS:显示角色具有的其他角色信息
USER_ROLE_PRIVS:显示当前用户具有的角色信息
Select granted_role, default_role from dba_role_privs where grantee=’BLAKE’;
显示角色所具有的系统权限
DBA_SYS_PRIVS:显示用户或角色所具有的系统权限
ROLE_SYS_PRIVS:显示角色所具有的系统权限