Oracle用户与对象权限与系统权限Word格式文档下载.docx
《Oracle用户与对象权限与系统权限Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Oracle用户与对象权限与系统权限Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
SQL>
SELECT
property_name,property_value
FROM
database_properties
WHERE
property_name
LIKE
'
DEFAULT%'
;
PROPERTY_NAME
PROPERTY_VALUE
--------------------------------------------------------------------------------
DEFAULT_TEMP_TABLESPACE
TEMP
DEFAULT_PERMANENT_TABLESPACE
USERS
DEFAULT_TBS_TYPE
SMALLFILE
更多关于表空间的请参考:
Oracle
表空间与数据文件
1.修改用户
修改用户的语法同创建用户,仅仅讲关键字create替换为alter,alteruser可以修改除用户名之外的任一属性
ALTER
robinsonACCOUNTLOCK;
2.修改密码
DBA
可以创建用户和修改密码
用户本人可以使用ALTERUSER
语句修改密码
robinson
IDENTIFIED
newpassword;
3.删除用户:
DROP
username[CASCADE]
CASECADE
连同用户创建的对象一并删除,如果该用户创建了对象,要加CASCADE删除,否则删除不掉
另外,不能删除当前正在与ORACLE服务器相连的用户。
4.改变用户在表空间上的配额:
username
QUOTA0
ON
system;
scottQUOTAUNLIMITED
USERS;
dogQUOTA30M
5.查看用户表空间配额(dba_ts_quotas):
USERNAME,TABLESPACE_NAME,MAX_BYTES/1024/1024"
MaxMB"
2
dba_ts_quotas
USERNAME='
SCOTT'
USERNAME
TABLESPACE_NAME
Max
MB
--------------------------------------------------------
SCOTT
SYSTEM
30
6.查看特定对象下用户所拥有的对象
使用dba_objects视图
owner,object_name,
object_type
dba_objects
owner=
3Oracle权限
系统权限:
允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等
对象权限:
允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等
3.1系统权限
超过一百多种有效的权限(SELECT
*
SYSTEM_PRIVILEGE_MAP查)
数据库管理员具有高级权限以完成管理任务,例如:
–创建新用户
–删除用户
–删除表
–备份表
a.常用的系统权限:
SESSION
创建会话
SEQUENCE
创建序列
SYNONYM
创建同名对象
TABLE
在用户模式中创建表
ANY
在任何模式中创建表
在用户模式中删除表
在任何模式中删除表
PROCEDURE
创建存储过程
EXECUTE
执行任何模式的存储过程
创建用户
删除用户
VIEW
创建视图
b.授予用户系统权限
GRANT
privilege[,privilege...]
TO
user
[,user|role,PUBLIC...]
[WITHADMINOPTION];
PUBLIC
所有用户
WITHADMINOPTION
使用户同样具有分配权限的权利,可将此权限授予别人
SESSION,CREATE
TABLE,CREATE
scott;
scott
WITH
ADMIN
OPTION;
CONNscott;
--scott具有WITHADMINOPTION,故可以将EXECUTEANYPROCEDURE授予robinson
Enterpassword:
Connected.
robinson;
Grant
succeeded.
PUBLIC;
--将EXECUTEANYPROCEDURE授予所有用户
CONNsystem/redhat;
--使用system为robinson授予CREATETABLE、CREATESESSION权限
c.使用系统权限
--使用robinson具有创建会话、创建表
tb1
AS
USER_TABLES;
--下面提示没有权限在users表空间创建对象
USER_TABLES
*
ERRORatline1:
ORA-01950:
no
privileges
on
tablespace
USERS'
CONNsys
as
sysdba;
--使用sys帐户登陆并为robinson在users表空间指定配额后可以创建表tb1
robinsonQUOTA10M
User
altered.
CONNrobinson/lion;
Table
created.
d.查看系统权限
dba_sys_privs
--针对所有用户被授予的系统权限
user_sys_privs
--针对当前登陆用户被授予的系统权限
grantee,privilege,admin_option
dba_sys_privs
grantee
IN
('
'
ROBINSON'
)
3
ORDER
grantee;
GRANTEE
PRIVILEGE
ADM
-------------------------------------------------------------------------
ROBINSON
NO
YES
UNLIMITEDTABLESPACE
e.回收系统权限
REVOKE
{privilege
|
role}
{user_name
role_name
PUBLIC}
--下面的示例中并没有回收掉原来由scott授予给robisnonEXECUTEANYPROCEDURE
的权限
Revoke
select
from
where
in
)
and
privilege
=
EXECUTEANYPROCEDURE'
order
by
对于使用withadminoption
为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限
3.2对象权限
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
ORACLE一共有种对象权限
对象权限
表
视图
序列
过程
修改(alter)
√
√
删除(delete)
执行(execute)
索引(index)
插入(insert)
关联(references)
选择(select)
更新(update)
a.对象授权
object_priv|ALL
[(columns)]
object
{user|role|PUBLIC}
[WITHGRANTOPTION];
ALL:
所有对象权限
PUBLIC:
授给所有的用户
OPTION:
允许用户再次给其它用户授权
b.授予系统权限与授予对象权限的语法差异:
授予对象权限时需要指定关键字ON,从而能够确定权限所应用的对象。
对于表和视图可以指定特定的列来授权。
--对象授权示例
SHOW
USER;
is
"
SCOTT"
emp
UPDATE(sal,mgr)
--新创建一个用户john,使用robinson账户授予更新scott.emp(sal,mgr)的权限
johnIDENTIFIED
john;
CONNROBINSON/LION
scott.emp
--授予scott.emp(sal,mgr)的更新权限
UPDATE
SET
sal
+
100
ename
--成功更新
1rowupdated.
--向数据库中所有用户分配权限
dept
c.查询权限分配情况
数据字典视图
描述
ROLE_SYS_PRIVS
角色拥有的系统权限
ROLE_TAB_PRIVS
角色拥有的对象权限
USER_TAB_PRIVS_MADE
查询授出去的对象权限(通常是属主自己查)
USER_TAB_PRIVS_RECD
用户拥有的对象权限
USER_COL_PRIVS_MADE
用户分配出去的列的对象权限
USER_COL_PRIVS_RECD
用户拥有的关于列的对象权限
USER_SYS_PRIVS
用户拥有的系统权限
USER_TAB_PRIVS
USER_ROLE_PRIVS
用户拥有的角色
--查询已授予的对象权限(即某个用户对哪些表对哪些用户开放了对象权限)
user_tab_privs_made;
--下面是scott用户开放的对象权限
TABLE_NAME
GRANTOR
GRAHIE
-----------------------------------------------------------------------------------------------
DEPT
NO
EMP
--查询列上开放的对象权限
user_col_privs_made;
COLUMN_NAME
GRA
--------------