Oracle的权限设置

一、权利的分类:

系统权限:系统指定用户使用数据库的权限(系统权限是为用户提供的)。

实体权限:由某个用户访问某个用户的表或视图(用于表或视图)。

两。系统权限管理:

1。系统权利分类:

DBA:拥有系统的所有特权,这是系统的最高权威,只有DBA才能创建数据库结构。

资源:具有资源特权的用户只能创建实体,不能创建数据库结构。

连接:具有连接特权的用户只能登录到Oracle,不能创建实体,也不能创建数据库结构。

对于普通用户:授予连接、资源权限。

对于DBA管理用户:授予连接、资源、DBA权限。

2。系统授权命令:

{系统权限只能由DBA用户授予:sys、系统(首先,只有这两个用户)}

授权命令:SQL >连接、资源、DBA到用户名1 {、用户名2 }…;

{普通用户可以通过授权获得与系统相同的用户权限,但永远不能达到与sys用户相同的权限。系统用户权限也可以恢复。}

例:
复制代码代码如下所示:
连接系统管理器

SQL >创建用户user50经user50;

已授予连接,资源user50;


询问用户有何权限:
复制代码代码如下所示:
SQL >选择*从user_sys_privs;查看当前用户的所有权限

SQL> select * from user_tab_privs;看到用户对数据表的权限


删除用户:SQL >删除用户级联级联;用户将删除所有的东西一起创建

三.系统权限转移:

添加admin选项选项,可以获得所获得的权限。
复制代码代码如下所示:
已授予连接、资源与管理选项user50; / /权力的转移。


4。系统权限恢复:系统权限只能由DBA用户恢复

命令:SQL >撤销连接,资源从user50;

解释uff1a

1)如果我们使用授予系统权限用户管理选项,那么所有用户相同的权限授予用户将取消用户的系统权限,不将这些用户相同的权限。

2)系统权限没有级别连接。也就是说,授予B权限,B授予C权限。如果恢复b的权限,C的特权不会受到影响。系统权限可以在用户之间恢复,也就是说,a可以直接恢复C用户的权限。

三、实体权限管理

1。实体权限分类:选择、更新、插入、更改、索引、删除、所有包含所有权限

执行执行权限

一个名:
复制代码代码如下所示:
SQL >查询、更新、插入、对产品user02;

已授予所有产品user02;


user02:
复制代码代码如下所示:
SQL SELECT * FROM user01.product >;

的user02 /查尔斯user_tables,user01.product不包括这张桌子,但如果你检查all_tables可以发现,因为他可以访问。



2。该表的操作权限授予所有用户:
复制代码代码如下所示:
将所有产品授予公共;公共代表所有用户,这里的所有特权不包括删除。


{实体权限数据字典}:
复制代码代码如下所示:
已选择的主人,table_name从all_tables; / /用户可以查询表

SQL >选择table_name从user_tables; / /创建用户表

SQL >选择人,table_schema,table_name,特权从all_tab_privs; / /授权访问表(授权)

SQL >选择受让人,老板,table_name,特权从user_tab_privs; / /许可授权(许可)表


三.DBA用户可以操作所有用户的任意基表(未经授权,包括删除):

DBA用户:
复制代码代码如下所示:
>创建表的SQL stud02.product(身份证号码(10),名VARCHAR2(20));

SQL >删除表stud02.emp;

SQL语句创建表的stud02.employee >

作为

SELECT * FROM scott.emp;


4。实体权转让(带授权):

一个名:
复制代码代码如下所示:
SQL >查询、更新产品授予期权user02 user02; / /获得许可,可以转移。


5。恢复实体权利:

一个名:
复制代码代码如下所示:
SQL >撤销选择,产品从user02更新; / /转移权限将丢失。

解释

1)如果取消了用户的对象特权,用户也将取消使用授予选项授予权限的用户的相同权限,也就是说,在级联时取消授权。

Oracle的用户管理

首先,创建用户的配置文件

创建学生资源文件名

3 / / failed_login_attempts指定锁定用户登录失败次数

password_lock_time 5 / /指定用户锁定的日子

password_life_time / / 30天可以指定一个密码

两。创建一个用户
复制代码代码如下所示:
创建用户用户名

密码

默认表空间

临时表空间

轮廓

表空间上的配额整数/无限;



例:
复制代码代码如下所示:
SQL >创建用户acc01
经acc01 / /如果密码是多少,请使用双引号。
defaulttablespaceaccount
temporarytablespacetemp
profiledefault
quota50monaccount;
SQL > grantconnect,resourcetoacc01;


{查询用户默认表空间,临时表空间
复制代码代码如下所示:
SQL > selectusername,default_tablespace,temporary_tablespacefromdba_users;


{查询系统资源文件名:
复制代码代码如下所示:
SQL SELECT * fromdba_profiles >;


资源文件与表相似,它在创建后将保存在数据库中。
复制代码代码如下所示:
SQL > selectusername,剖面,default_tablespace,temporary_tablespacefromdba_users;
createprofilecommonlimit SQL >
failed_login_attempts5
idle_time5;
alteruseracc01profilecommon SQL >;


三。修改用户:
复制代码代码如下所示:
SQL用户名> AlterUser

确认密码

defaulttablespacetablespace

temporarytablespacetablespace

儿子

quotainteger / unlimitedontablespace;


1。修改口令词:
复制代码代码如下所示:
SQL > alteruseracc01identifiedby 12345 ;


2。修改用户的默认表空间:
复制代码代码如下所示:
alteruseracc01defaulttablespaceusers SQL >;


三.修改用户的临时表空间
复制代码代码如下所示:
alteruseracc01temporarytablespacetemp_data SQL >;


4,强制用户修改密码:
复制代码代码如下所示:
alteruseracc01passwordexpire SQL >;


5。用锁锁定用户
复制代码代码如下所示:
SQL > alteruseracc01accountlock; / /锁
SQL > alteruseracc01accountunlock; / /解锁


四。删除用户
复制代码代码如下所示:
SQL > dropuser用户名; / /用户没有建立任何实体
SQL > dropuser用户名级联; / /用户和施工单位全部删除


用户* 1。当前连接不能被删除。

五。监控用户:

1,查询用户会话信息:
复制代码代码如下所示:
SQL > selectusername、Sid、串行#,machinefromv $ SESSION;


2,删除用户会话信息:
复制代码代码如下所示:
SQL > altersystemkillsession'sid,串行#;

三.查询用户SQL语句:
复制代码代码如下所示:
SQL > selectuser_name,sql_textfromv open_cursor美元;


Oracle数据库角色管理

一、角色是什么

角色是一组权限,它为用户分配角色,用户拥有角色中的所有权限。

两。系统预定义角色

预定义的角色是系统在数据库安装后自动创建的一些常用角色。这是对预定义角色的简要介绍。角色包含的权限可以用以下语句查询:
复制代码代码如下所示:
SQL >选择* fromsys_role_privswhererole = 'role名字;


1.connect,资源,DBA

这些预定义的角色主要用于向后兼容性,主要用于数据库管理,Oracle建议用户自己设计数据库管理和安全权限规划,而不是使用这些预定义的角色,这些角色在将来的版本中可能不是预定义的角色。

2.delete_catalog_role,execute_catalog_role,select_catalog_role

这些角色主要用于访问数据字典视图和包。

3.exp_full_database,imp_full_database

这两个角色用于数据导入和导出工具。

4.aq_user_role,aq_administrator_role

AQ:advancedquery.these两角色用于Oracle高级查询功能。

5.snmpagent

对于oracleenterprisemanager和Agent

6.recovery_catalog_owner

它是用回收库创建一个用户,在恢复图书馆的信息,请参阅Oracle文档oracle9iuser managedbackupandrecoveryguide

7.hs_admin_role

adbausingoracle'sheterogeneousservicesfeatureneedsthisroletoaccessappropriatetablesinthedatadictionary。

三。管理角色

1。建立一个角色
复制代码代码如下所示:
createrolerole1 SQL >;


2。赋予角色权力
复制代码代码如下所示:
SQL > grantcreateanytable,createproceduretorole1;


三.授予用户角色
复制代码代码如下所示:
grantrole1touser1 SQL >;


4。查看角色中包含的权限
复制代码代码如下所示:
SQL SELECT * fromrole_sys_privs >;


5。创建一个带有角色的密码(密码在密码生效时必须提供密码)。
复制代码代码如下所示:
createrolerole1identifiedbypassword1 SQL >;


6。更改角色:是否需要密码
复制代码代码如下所示:
alterrolerole1notidentified SQL >;

alterrolerole1identifiedbypassword1 SQL >;

7。设置当前用户将要执行的角色。

(注:角色生效的概念是什么)如果用户有B1,B2,B3三,所以如果B1是不是有效的,是包含在B1的权限为没有,只有角色的作用和角色权限做角色的用户,设置的参数max_enabled_roles字符的最大有效值;在用户登录、Oracle所有权限分配给用户直接分配权限和用户默认角色的用户)。
复制代码代码如下所示:
SQL > setrolerole1; / /降的影响

SQL > setrolerole,作用; / /角色,作用效果

SQL > setrolerole1identifiedbypassword1; / /使用密码和进入角色的力量

SQL > setroleall; / /所有的字符使用用户输入

SQL > setrolenone; / /角色集

SQL > setroleallexceptrole1; / /角色除了用户的所有角色的力量。

SQL> select * fromsession_roles; / /查看当前用户的有效作用。


8。修改指定的用户并设置其默认角色
复制代码代码如下所示:
alteruseruser1defaultrolerole1 SQL >;
alteruseruser1defaultroleallexceptrole1 SQL >;


9。删除角色
复制代码代码如下所示:
droprolerole1 SQL >;


删除角色后,具有该角色的用户不再拥有该角色,且相应的权限不在该角色中。

解释:

1)没有withgrantoption可以为角色授予对象权限

2)你可以使用withadminoption授予系统权限的角色,当取消不级联