oracle中查看用户权限Word文档格式.docx

上传人:b****1 文档编号:2956385 上传时间:2023-05-01 格式:DOCX 页数:18 大小:22.08KB
下载 相关 举报
oracle中查看用户权限Word文档格式.docx_第1页
第1页 / 共18页
oracle中查看用户权限Word文档格式.docx_第2页
第2页 / 共18页
oracle中查看用户权限Word文档格式.docx_第3页
第3页 / 共18页
oracle中查看用户权限Word文档格式.docx_第4页
第4页 / 共18页
oracle中查看用户权限Word文档格式.docx_第5页
第5页 / 共18页
oracle中查看用户权限Word文档格式.docx_第6页
第6页 / 共18页
oracle中查看用户权限Word文档格式.docx_第7页
第7页 / 共18页
oracle中查看用户权限Word文档格式.docx_第8页
第8页 / 共18页
oracle中查看用户权限Word文档格式.docx_第9页
第9页 / 共18页
oracle中查看用户权限Word文档格式.docx_第10页
第10页 / 共18页
oracle中查看用户权限Word文档格式.docx_第11页
第11页 / 共18页
oracle中查看用户权限Word文档格式.docx_第12页
第12页 / 共18页
oracle中查看用户权限Word文档格式.docx_第13页
第13页 / 共18页
oracle中查看用户权限Word文档格式.docx_第14页
第14页 / 共18页
oracle中查看用户权限Word文档格式.docx_第15页
第15页 / 共18页
oracle中查看用户权限Word文档格式.docx_第16页
第16页 / 共18页
oracle中查看用户权限Word文档格式.docx_第17页
第17页 / 共18页
oracle中查看用户权限Word文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

oracle中查看用户权限Word文档格式.docx

《oracle中查看用户权限Word文档格式.docx》由会员分享,可在线阅读,更多相关《oracle中查看用户权限Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

oracle中查看用户权限Word文档格式.docx

dba_sys_privs 

where 

grantee='

DATAUSER'

2.union 

3.select 

grantee 

in 

(select 

granted_role 

dba_role_privs 

);

selectprivilegefromdba_sys_privswheregrantee='

union

selectprivilegefromdba_sys_privswheregranteein(selectgranted_rolefromdba_role_privswheregrantee='

);

--================================

--Oracle用户、对象权限、系统权限

一、用户与模式

用户:

对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作

SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象

SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象

模式(schema):

是某个用户拥有所有对象的集合。

具有创建对象权限并创建了对象的用户称为拥有某个模式

注意:

创建数据库对象(视图,表等)的任一用户都拥有一个以该用户名称开头的模式,且被视为模式用户

二、创建及修改用户

条件:

需要具有创建用户的权限,如sys,system,sysdba,dbarole等

语法:

CREATEUSERuser

IDENTIFIED{BYpassword|EXTERNALLY|GLOBALLYASexternalname}

[DEFAULTTABLESPACEtablespace_name]

[TEMPORARYTABLESPACEtablespace_name]

[QUOTA{n{[K|M]|UNLIMITED}ONtablespace_name

QUOTA{n{[k|M]|UNLIMITED}ONtablespace_name...]

[PASSWORDEXPIRE]

[ACCOUNT{LOCK|UNLOCK}]

[PROFILE{profile_name|DEFAULT}]

eg:

CREATEUSERrobinsonIDENTIFIEDBYtiger;

--省略了DEFAULTTABLESPACE和TEMPORARYTABLESPACE时,则由database_properties中对应的参数确定

SQL>

SELECTproperty_name,property_valueFROMdatabase_propertiesWHEREproperty_nameLIKE'

DEFAULT%'

;

PROPERTY_NAMEPROPERTY_VALUE

--------------------------------------------------------------------------------

DEFAULT_TEMP_TABLESPACETEMP

DEFAULT_PERMANENT_TABLESPACEUSERS

DEFAULT_TBS_TYPESMALLFILE

更多关于表空间的请参考:

Oracle表空间与数据文件

1.修改用户

修改用户的语法同创建用户,仅仅讲关键字create替换为alter,alteruser可以修改除用户名之外的任一属性

ALTERUSERrobinsonACCOUNTLOCK;

2.修改密码

DBA可以创建用户和修改密码

用户本人可以使用ALTERUSER语句修改密码

ALTERrobinsonIDENTIFIEDBYnewpassword;

3.删除用户:

DROPUSERusername[CASCADE]

CASECADE连同用户创建的对象一并删除,如果该用户创建了对象,要加CASCADE删除,否则删除不掉

另外,不能删除当前正在与ORACLE服务器相连的用户。

4.改变用户在表空间上的配额:

ALTERUSERusernameQUOTA0ONsystem;

ALTERUSERscottQUOTAUNLIMITEDONUSERS;

ALTERUSERdogQUOTA30MONsystem;

5.查看用户表空间配额(dba_ts_quotas):

SELECTUSERNAME,TABLESPACE_NAME,MAX_BYTES/1024/1024"

MaxMB"

2FROMdba_ts_quotasWHEREUSERNAME='

SCOTT'

USERNAMETABLESPACE_NAMEMaxMB

--------------------------------------------------------

SCOTTSYSTEM30

6.查看特定对象下用户所拥有的对象

使用dba_objects视图

SELECTowner,object_name,object_typeFROMdba_objectsWHEREowner='

三、ORACLE权限:

系统权限:

允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等

对象权限:

允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

1.系统权限

超过一百多种有效的权限(SELECT*FROMSYSTEM_PRIVILEGE_MAP查)

数据库管理员具有高级权限以完成管理任务,例如:

–创建新用户

–删除用户

–删除表

–备份表

a.常用的系统权限:

CREATESESSION创建会话

CREATESEQUENCE创建序列

CREATESYNONYM创建同名对象

CREATETABLE在用户模式中创建表

CREATEANYTABLE在任何模式中创建表

DROPTABLE在用户模式中删除表

DROPANYTABLE在任何模式中删除表

CREATEPROCEDURE创建存储过程

EXECUTEANYPROCEDURE执行任何模式的存储过程

CREATEUSER创建用户

DROPUSER删除用户

CREATEVIEW创建视图

b.授予用户系统权限

GRANTprivilege[,privilege...]TOuser[,user|role,PUBLIC...]

[WITHADMINOPTION];

PUBLIC所有用户

WITHADMINOPTION使用户同样具有分配权限的权利,可将此权限授予别人

SQL>

GRANTCREATESESSION,CREATETABLE,CREATEUSERTOscott;

GRANTEXECUTEANYPROCEDURETOscottWITHADMINOPTION;

CONNscott;

--scott具有WITHADMINOPTION,故可以将EXECUTEANYPROCEDURE授予robinson

Enterpassword:

Connected.

GRANTEXECUTEANYPROCEDURETOrobinson;

Grantsucceeded.

GRANTEXECUTEANYPROCEDURETOPUBLIC;

--将EXECUTEANYPROCEDURE授予所有用户

CONNsystem/redhat;

--使用system为robinson授予CREATETABLE、CREATESESSION权限

GRANTCREATETABLE,CREATESESSIONTOrobinson;

c.使用系统权限

--使用robinson具有创建会话、创建表

CREATETABLEtb1ASSELECT*FROMUSER_TABLES;

--下面提示没有权限在users表空间创建对象

CREATETABLEtb1ASSELECT*FROMUSER_TABLES

*

ERRORatline1:

ORA-01950:

noprivilegesontablespace'

USERS'

CONNsysassysdba;

--使用sys帐户登陆并为robinson在users表空间指定配额后可以创建表tb1

ALTERUSERrobinsonQUOTA10MONUSERS;

Useraltered.

CONNrobinson/lion;

Tablecreated.

d.查看系统权限

dba_sys_privs--针对所有用户被授予的系统权限

user_sys_privs--针对当前登陆用户被授予的系统权限

SELECTgrantee,privilege,admin_optionFROMdba_sys_privs

2WHEREgranteeIN('

'

ROBINSON'

3ORDERBYgrantee;

GRANTEEPRIVILEGEADM

-------------------------------------------------------------------------

ROBINSONCREATESESSIONNO

ROBINSONCREATETABLENO

ROBINSONEXECUTEANYPROCEDURENO

SCOTTCREATEPUBLICSYNONYMNO

SCOTTCREATESESSIONNO

SCOTTCREATESYNONYMNO

SCOTTCREATETABLENO

SCOTTCREATEUSERNO

SCOTTCREATEVIEWNO

SCOTTEXECUTEANYPROCEDUREYES

SCOTTUNLIMITEDTABLESPACENO

e.回收系统权限

REVOKE{privilege|role}FROM{user_name|role_name|PUBLIC}

--下面的示例中并没有回收掉原来由scott授予给robisnonEXECUTEANYPROCEDURE的权限

REVOKEEXECUTEANYPROCEDUREFROMscott;

Revokesucceeded.

selectgrantee,privilege,admin_optionfromdba_sys_privs

2wheregranteein('

)andprivilege='

EXECUTEANYPROCEDURE'

3orderbygrantee;

注意:

对于使用withadminoption为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有

用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限

2.对象权限

不同的对象具有不同的对象权限

对象的拥有者拥有所有权限

对象的拥有者可以向外分配权限

ORACLE一共有种对象权限

对象权限表视图序列过程

修改(alter)√√

删除(delete)√√

执行(execute)√

索引(index)√

插入(insert)√√

关联(references)√√

选择(select)√√√

更新(update)√√

a.对象授权

GRANTobject_priv|ALL[(columns)]

ONobject

TO{user|role|PUBLIC}

[WITHGRANTOPTION];

ALL:

所有对象权限

PUBLIC:

授给所有的用户

WITHGRANTOPTION:

允许用户再次给其它用户授权

b.授予系统权限与授予对象权限的语法差异:

授予对象权限时需要指定关键字ON,从而能够确定权限所应用的对象。

对于表和视图可以指定特定的列来授权。

--对象授权示例

SHOWUSER;

USERis"

SCOTT"

GRANTSELECTONempTOrobinson;

Grantsucceeded.

GRANTUPDATE(sal,mgr)ONempTOrobinsonWITHGRANTOPTION;

--新创建一个用户john,使用robinson账户授予更新scott.emp(sal,mgr)的权限

CREATEUSERjohnIDENTIFIEDBYjohn;

Usercreated.

GRANTCREATESESSIONTOjohn;

CONNROBINSON/LION

Connected.

GRANTUPDATE(sal,mgr)ONscott.empTOjohn;

--授予scott.emp(sal,mgr)的更新权限

UPDATEscott.empSETsal=sal+100WHEREename='

--成功更新

1rowupdated.

--向数据库中所有用户分配权限

GRANTSELECTONdeptTOPUBLIC;

Grantsucceeded.

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用户拥有的角色

--查询已授予的对象权限(即某个用户对哪些表对哪些用户开放了对象权限)

SELECT*FROMuser_tab_privs_made;

--下面是scott用户开放的对象权限

GRANTEETABLE_NAMEGRANTORPRIVILEGEGRAHIE

-----------------------------------------------------------------------------------------------

PUBLICDEPTSCOTTSELECTNONO

ROBINSONEMPSCOTTSELECTNONO

--查询列上开放的对象权限

SELECT*FROMuser_col_privs_made;

GRANTEETABLE_NAMECOLUMN_NAMEGRANTORPRIVILEGEGRA

--------------------------------------------------------------------------------------------------

ROBINSONEMPSALSCOTTUPDATEYES

JOHNEMPMGRROBINSONUPDATENO

ROBINSONEMPMGRSCOTTUPDATEYES

JOHNEMPSALROBINSONUPDATENO

--查询已接受的对象特权(即某个用户被授予了哪些表上的哪些对象特权)

SELECT*FROMuser_tab_privs_recd;

OWNERTABLE_NAMEGRANTORPRIVILEGEGRAHIE

------------------------------------------------------------------------------------------------

SCOTTEMPSCOTTSELECTNONO

--查询用户已接受列的对象权限

SELECT*FROMuser_col_privs_recd;

OWNERTABLE_NAMECOLUMN_NAMEGRANTORPRIVILEGEGRA

-------------------------------------------------------------------------------------------------

SCOTTEMPMGRSCOTTUPDATEYES

SCOTTEMPSALSCOTTUPDATEYES

d.收回对象权限

使用REVOKE语句收回权限

使用WITHGRANTOPTION子句所分配的权限同样被收回

REVOKE{privilege[,privilege...]|ALL}

FROM{user[,user...]|role|PUBLIC}

[CASCADECONSTRAINTS];

CASCADECONSTRAINTS为处理引用完整性时需要

--收回权限示例

connscott/tiger;

REVOKESELECTONempFROMrobinson;

Revokesucceeded.

REVOKEUPDATE(sal,mgr)ONempFROMrobinson;

--注意此处的提示revoke的是整个表,而非列

REVOKEUPDATE(sal,mgr)ONempFROMrobinson

*

ERRORatline1:

ORA-01750:

UPDATE/REFERENCESmayonlybeREVOKEdfromthewholetable,notbycolumn

REVOKEUPDATEONempFROMrobinson;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2