- 浏览: 238621 次
最新评论
角色与用户权限的学习
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
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
发表评论
-
ETL工具--kettle简介
2016-02-24 11:21 0oracle ETL工具---数据迁移 常用的有:OWB(o ... -
oracle 游标实例
2015-12-31 17:23 1199oracle游标 游标-----内存 ... -
10053事件分析
2015-12-25 17:37 7821)10053介绍: 10053 事件是oracle 提供的用 ... -
oracle绑定变量学习
2015-12-25 17:01 1586绑定变量(binding variable) ... -
oracle 绑定变量
2015-12-24 17:26 0关键词: 绑定变量(binding variable),共享池 ... -
oracle插入大量数据
2015-12-23 17:35 1411oracle插入大量数据 1.生 ... -
ORA-03113:end-of-file on communication channel
2015-12-23 14:32 1139测试上面的一个库 plsql报错:shared memory ... -
oracle分区表【转】
2015-12-23 14:20 433oracle分区表 1.表空间及 ... -
迁移数据文件到ASM【转】
2015-12-23 11:53 7661.迁移数据文件到ASM 1) ... -
adrci命令
2015-12-23 11:46 3049一、adrci说明 在oracle11g中,dump ... -
oracle database link
2015-12-21 17:08 872目前我的数据库里只有tinadb一个实例,要创建db link ... -
oracle回收站
2015-12-21 14:22 426oracle回收站 1.drop table books; ... -
使用nid修改sid和dbname
2015-12-21 15:29 761如非必要,不建议在生产库上对dbid进行修改 1、修改dbi ... -
rman模拟故障恢复实验
2015-12-18 16:08 1147补充1:restore database和recover da ... -
rman命令学习-tina(下)
2015-12-18 16:07 1152五、rman删除 delete命令 删除相关的 ... -
rman命令学习-tina(上)
2015-12-18 16:06 874RMAN学习-tina rman的功能非常强大,下面我们来一 ... -
oracle profile介绍
2015-12-16 17:34 620profile文件的介绍: Oracle系统中的profi ... -
oracle缩小表空间
2015-12-18 16:59 1755oracle缩小表空间: oracle常用的此类命令Alte ... -
oracle数据库的启动和关闭【转】
2015-12-16 15:02 1131数据库的启动和关闭 Or ... -
oracle的主要进程
2015-12-16 14:21 1180[size=small]oracle的主要进程 Oracle实 ...
相关推荐
java用户角色权限demo,简单说明用户角色权限直接的关系
适合于SAP BASIS新手的 用户ERP用户新建、角色维护的培训文档
IDEA + SpringBoot + SpringSecurity + JPA 实现用户角色权限登录认证,security过滤请求资源,用户登录获取用户角色权限,过滤用户非法请求等
一直想整理一篇关于用户角色权限的设计,这几天通过网上资料和自己实际工作中运用到的资源把用户角色权限的数据库表设计出来。 基础表有3张: 角色表--用来记录角色名称 用户表--用来记录登录用户名称和登录密码 ...
C# winform 权限控制 包括角色 用户 权限设置,拿出来共享
角色:各种角色定义了对此角色可操作细节的权限组合 用户权限:用户权限是对esxi中的对象实例(如esxi主机,虚拟机,存储,网络等...通过在这些对象上绑定“用户+角色”来限定每个用户或用户组可以对此对象的操作权限。
用户菜单权限表建表语句以及数据插入语句,后台管理系统搭建必备,学习专用。 如果使用外键关联,在对表进行数据操作时就考虑另一张关联的表,相当于两张表就绑在一起了,操作这张表就必须考虑另一张关联表。我们...
此软件包允许您管理数据库中的用户权限和角色。
基于角色的用户权限设计+TreeView
Java layui 用户角色权限源码。 用户角色权限源码,其中包括数据库资源,数据库设计文档,layui布局等,绝对不亏 java layui 用户角色权限
使用spring+springmvc框架 整合了Mybatis持久层框架 整合Druid用于数据库连接,并使用Druid对业务层监控spring jdbc 整合EhCache,对Mybatis的二级缓存进行管理和对spring进行缓存管理 ...整合hibernate.validator校验...
用户角色权限设计方案
java用户角色权限设计
该文档主要讲述角色权限用户之间的关系,怎样更好的设计页面和权限管理
针对SU53提示修改用户角色权限
信息技术的应用无所不在, 随之...因此现在的大多数用户权限系统是使用 了用户 I D和口令来识别合法用户。 本设计的系统是在基于角色控制基础上提取 改进而来的, 对使用用户 I D和口令来识别合法用 户进行了改进。
SpringBoot+SpringSecurity+JWT+MybatisPlus实现基于注解的权限验证,可根据注解的格式不同,做到角色权限控制,角色加资源权限控制等,粒度比较细化。 @PreAuthorize("hasAnyRole('ADMIN','USER')"):具有admin或...
0、重点!重点!...1、本教程适用所有开发人员简单易懂,结合文章教程与demo示例。...5、基于RBAC五张表:用户表 tb_user、角色表tb_role、权限表tb_permission、用户角、表tb_user_role、角色权限tb_role_permissio
目前系统已经基本集成的功能包含有,用户管理,角色管理,菜单管理,组织管理,数据字典,日志管理,接口管理(暂时未完成实际应用),流程配置,运行流程管理,消息管理(暂无实际应用),业务模块没有做。后台是基于...
用户模块用于管理用户信息,角色模块用于管理角色信息,权限模块用于管理权限信息。实现对用户访问资源的控制,可以通过将权限与角色进行关联。 系统实现主要包括用户登录、权限验证、角色管理、权限管理、资源管理...