用户+角色+权限

简介:
角色与用户权限的学习 

1.说明 
oracle用户:每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。 
Oracle角色(role)就是一组权限(privilege)。 
               用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。 
数据库系统权限(Database System Privilege)允许用户执行特定的命令集。 
               例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE权限允许用户授予任何系统权限。 
数据库对象权限(Database Object Privilege)使得用户能够对各个对象进行某些操作。 
               例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。 


2.创建、删除用户和角色 
1)系统用户: 
sys/change_on_install  (后面是默认密码) 
system/manager 
scott/tiger 

创建用户: 
create user username identified by password default tablespace tbsname temporary tablespace tempspacename; 

修改密码: 
alter user username identified by newpassword; 

删除用户: 
drop user username CASCADE; 


2)系统角色: 
CONNECT自动建立,包含以下权限:ALTER SESSION、CREATE CLUSTER、CREATE DATABASELINK、CREATE SEQUENCE、CREATE SESSION、CREATE SYNONYM、CREATE TABLE、CREATEVIEW。 
RESOURCE自动建立,包含以下权限:CREATE CLUSTER、CREATE PROCEDURE、CREATE SEQUENCE、CREATE TABLE、CREATE TRIGGR。 

创建自定义角色: 
create role rolename; 

给角色或者用户授权: 
1. grant(授权)命令     grant connect, resource to rolename/username; 
2. revoke(撤消)权限    revoke connect, resource from rolename/username; 

删除角色: 
drop role rolename; 

3.有关权限和角色的视图: 
all_tab_privs               描述表权限,这些权限的授予者是当前用户或者public 
all_tab_privs_made          描述当前用户所做的,或者在当前用户所拥有的对象上的对象授权 
all_tab_privs_recd          描述对象授权,这些授权的被授予者是当前用户或者public 

dba_role_privs              授予给用户或角色的角色权限 
dba_sys_privs               授予给用户或角色的系统权限 
dba_tab_privs               数据库中所有表的授权 
dba_col_privs               用户所拥有的列权限 

user_tab_privs              列出当前用户是其被授予者所有对象的授权 
user_tab_privs_made         列出在当前用户所拥有的所有对象上的授权 
user_role_privs             授予给当前用户的角色权限 
user_sys_privs              授予给当前用户的系统权限 
user_tab_privs_made         列出在当前用户所拥有的所有对象上的授权 
user_tab_privs_recd         描述对象授权,这些授权的被授予者是当前用户 

role_role_privs             授予给其他角色的角色,只是该用户可以访问的角色信息 
role_sys_privs              授予给角色的系统权限的信息,提供的只是该用户可以访问的信息 
role_tab_privs              授予给角色的对象权限的信息,提供的只是该用户可以访问的信息 
session_privs/roles         用户当前激活的权限和角色 

4.具体使用范例 
1)查询用户的系统权限: 
SQL> desc dba_sys_privs         
Name                                      Null?    Type 
----------------------------------------- -------- ---------------------------- 
GRANTEE                                   NOT NULL VARCHAR2(30) 
PRIVILEGE                                 NOT NULL VARCHAR2(40) 
ADMIN_OPTION                                       VARCHAR2(3) 

SQL> select grantee,privilege,admin_option from dba_sys_privs where grantee='TINA'; --grantee表示被授予者 
GRANTEE        PRIVILEGE ADM 
------------------------------ ---------------------------------------- 
TINA        UNLIMITED TABLESPACE NO  

2)查看用户所拥有的表的权限: 
SQL> desc dba_tab_privs 
Name                                      Null?    Type 
----------------------------------------- -------- ---------------------------- 
GRANTEE                                   NOT NULL VARCHAR2(30) 
OWNER                                     NOT NULL VARCHAR2(30) 
TABLE_NAME                                NOT NULL VARCHAR2(30) 
GRANTOR                                   NOT NULL VARCHAR2(30) 
PRIVILEGE                                 NOT NULL VARCHAR2(40) 
GRANTABLE                                          VARCHAR2(3) 
HIERARCHY                                          VARCHAR2(3) 


3)查询一个用户所拥有的角色 
SQL> desc dba_role_privs 
Name                                      Null?    Type 
----------------------------------------- -------- ---------------------------- 
GRANTEE                                            VARCHAR2(30) 
GRANTED_ROLE                              NOT NULL VARCHAR2(30) 
ADMIN_OPTION                                       VARCHAR2(3) 
DEFAULT_ROLE                                       VARCHAR2(3) 
SQL> select GRANTEE,GRANTED_ROLE,ADMIN_OPTION,DEFAULT_ROLE from dba_role_privs where GRANTEE='TINA'; 

GRANTEE        GRANTED_ROLE       ADM DEF 
------------------------------ ------------------------------ --- --- 
TINA        DBA       NO  YES 

一共有17中对象权限 
SQL> select distinct privilege from dba_tab_privs; 
PRIVILEGE 
---------------------------------------- 
EXECUTE 
FLASHBACK 
DEQUEUE 
ON COMMIT REFRESH 
ALTER 
DELETE 
UPDATE 
DEBUG 
QUERY REWRITE 
SELECT 
USE 
READ 
INSERT 
INDEX 
WRITE 
REFERENCES 
MERGE VIEW 

17 rows selected. 

4)查询一个角色所具有的系统权限: 
SQL> desc role_sys_privs         
Name                                      Null?    Type 
----------------------------------------- -------- ---------------------------- 
ROLE                                      NOT NULL VARCHAR2(30) 
PRIVILEGE                                 NOT NULL VARCHAR2(40) 
ADMIN_OPTION                                       VARCHAR2(3) 

SQL> select ROLE,PRIVILEGE,ADMIN_OPTION from role_sys_privs where role='RESOURCE'; 

ROLE                           PRIVILEGE                                ADM 
------------------------------ ---------------------------------------- --- 
RESOURCE                       CREATE SEQUENCE                          NO 
RESOURCE                       CREATE TRIGGER                           NO 
RESOURCE                       CREATE CLUSTER                           NO 
RESOURCE                       CREATE PROCEDURE                         NO 
RESOURCE                       CREATE TYPE                              NO 
RESOURCE                       CREATE OPERATOR                          NO 
RESOURCE                       CREATE TABLE                             NO 
RESOURCE                       CREATE INDEXTYPE                         NO 

8 rows selected. 

5)查询当前用户可以访问的所有的数据字典视图 
SQL> desc dict 
Name                                      Null?    Type 
----------------------------------------- -------- ---------------------------- 
TABLE_NAME                                         VARCHAR2(30) 
COMMENTS                                           VARCHAR2(4000) 

SQL> select TABLE_NAME,COMMENTS from dict where COMMENTS like '%grant%'; 

TABLE_NAME                             COMMENTS 
------------                           ------------------ 
USER_AUDIT_STATEMENT                   Audit trail records concerning  grant, revoke, audit, noaudit and alter system 
USER_COL_PRIVS                         Grants on columns for which the user is the owner, grantor or grantee 
USER_COL_PRIVS_MADE                    All grants on columns of objects owned by the user 
USER_COL_PRIVS_RECD                    Grants on columns for which the user is the grantee 
USER_SYS_PRIVS                         System privileges granted to current user 
DBA_STREAMS_ADMINISTRATOR              Users granted the privileges to be a streams administrator 
相关文章
|
3月前
|
Shell Linux 数据安全/隐私保护
用户,用户组相关操作
用户,用户组相关操作
37 0
|
数据安全/隐私保护
14-企业权限管理-角色关联权限操作
14-企业权限管理-角色关联权限操作
|
数据安全/隐私保护
13-企业权限管理-用户关联角色操作
13-企业权限管理-用户关联角色操作
13-企业权限管理-用户关联角色操作
|
中间件 数据安全/隐私保护
使用RoleBasedAuthorization实现基于用户角色的访问权限控制
本文将介绍如何通过 [Sang.AspNetCore.RoleBasedAuthorization](https://www.nuget.org/packages/Sang.AspNetCore.RoleBasedAuthorization) 库实现 RBAC 权限管理。
141 0
使用RoleBasedAuthorization实现基于用户角色的访问权限控制
|
SQL 存储 Java
纳税服务系统四(角色模块)【角色与权限、角色与用户】(二)
之前在Servlet+JSP+JavaBean的时候其实我们已经做过了用户-角色-权限之间的操作【权限管理系统】http://blog.csdn.net/hon_3y/article/details/61926175
156 0
纳税服务系统四(角色模块)【角色与权限、角色与用户】(二)
|
存储 Java 数据库连接
纳税服务系统四(角色模块)【角色与权限、角色与用户】(三)
之前在Servlet+JSP+JavaBean的时候其实我们已经做过了用户-角色-权限之间的操作【权限管理系统】http://blog.csdn.net/hon_3y/article/details/61926175
285 0
纳税服务系统四(角色模块)【角色与权限、角色与用户】(三)
|
数据库 数据安全/隐私保护
纳税服务系统四(角色模块)【角色与权限、角色与用户】(一)
之前在Servlet+JSP+JavaBean的时候其实我们已经做过了用户-角色-权限之间的操作【权限管理系统】http://blog.csdn.net/hon_3y/article/details/61926175
201 0
纳税服务系统四(角色模块)【角色与权限、角色与用户】(一)
|
关系型数据库 数据安全/隐私保护
|
Shell Linux 数据安全/隐私保护