用户+角色+权限

角色与用户权限的学习 

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 

时间: 2024-09-03 17:32:47

用户+角色+权限的相关文章

关于用户角色权限的一点想法(1)

标题    关于用户角色权限的一点想法(1)    biggie(原作) 关键字    关于用户角色权限的一点想法 前言: 权限往往是一个极其复杂的问题,但也可简单表述为这样的逻辑表达式:判断"Who对What(Which)进行How的操作"的逻辑表达式是否为真.针对不同的应用,需要根据项目的实际情况和具体架构,在维护性.灵活性.完整性等N多个方案之间比较权衡,选择符合的方案. 目标: 直观,因为系统最终会由最终用户来维护,权限分配的直观和容易理解,显得比较重要,系统不辞劳苦的实现了组

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装       (5):前台Jquery easyUI实现   (6):EF上下文实例管理    (7):DBSession的封装   (8):DBSession线程内唯一       (9):

(转)扩展RBAC用户角色权限设计方案

扩展RBAC用户角色权限设计方案 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用户-角色-权限"的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,"超级管理员"."版主"都是角色.版主可管

【shiro】spring整合shiro,注解控制shiro用户/角色/权限And/OR,没有权限跳转到固定页面

这几天粗浅的把shiro整合到spring中,并且注解控制shiro用户/角色/权限And/OR 步骤: 1.首先maven搭建web项目 2.创建数据库 user/role/authority 其中,role->user是一对多,role->authority是多对多 shiros.sql内容: 1 /* 2 SQLyog Ultimate v11.24 (32 bit) 3 MySQL - 5.5.41 : Database - shiros 4 *********************

关于用户角色权限的一点想法

前言: 权限往往是一个极其复杂的问题,但也可简单表述为这样的逻辑表达式:判断"Who对What(Which)进行How的操作"的逻辑表达式是否为真.针对不同的应用,需要根据项目的实际情况和具体架构,在维护性.灵活性.完整性等N多个方案之间比较权衡,选择符合的方案. 目标: 直观,因为系统最终会由最终用户来维护,权限分配的直观和容易理解,显得比较重要,系统不辞劳苦的实现了组的继承,除了功能的必须,更主要的就是因为它足够直观. 简单,包括概念数量上的简单和意义上的简单还有功能上的简单.想用

关于用户和权限设计的问题。。。求高手指点

问题描述 用户和权限应该是每个系统最基本的功能了吧,所以我也想弄清楚,但是目前没清晰的思路~我想的是主要分为:用户people机构organize角色role权限菜单power大概意思是:用户属于某个机构,拥有某些角色,每个角色代表不同的权限,也就是不同的角色显示不同的页面菜单现在的问题是,比如我把用户和机构在数据库设计时做关联,多对一关系,会出现用户表的外键orgNo指向机构表的orgNo,那么机构表的orgNo就要作为主键了,但是实际上,对于机构表来说,orgNo一般是不作为主键的!~这就产

经典角色权限系统设计五张表及拓展应用

设计基础:用户.角色.权限三大核心表,加上用户角色.角色权限两个映射表(用于给用户表联系上权限表).这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限. 大致用到5张表:用户表(UserInfo).角色表(RoleInfo).菜单表(MenuInfo).用户角色表(UserRole).角色菜单表(RoleMenu). 各表的大体表结构如下: 1.用户表(UserInfo):Id.UserName.UserPwd 2.角色表(RoleInfo):Id.RoleName 3.菜单表(Me

Oracle用户、权限、角色管理

 Oracle 数据库用户管理 Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理: 1.系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创

spring security3 用户的权限信息,角色及资源信息放入缓存里面?

问题描述 spring security3 用户的权限信息,角色及资源信息放入缓存里面? 修改或删除时更新缓存信息? 解决方案 spring security3 不关注你的用户,角色,权限等信息从哪来,只关心有没有这些数据放置缓存是你自己需要配置的,然后spring security3 在通过你配置的这些信息取得所要的数据 ,放不放缓存,spring security3都可以工作.只是放在缓存里是为了提高程序的执行效率,对于修改,添加,删除用户,角色等,肯定要更新缓存的解决方案二:这样也可以啊.