不论什么与权限相关的东西都少不了”角色”的概念,Java如此,.Net如此,Oracle当然也不例外。

  角色事实上就是权限的集合,将多个权限打包到一个角色中,这样每一个角色有特定的权限。当须要给某个对象赋予某种权限时,就找到具有对应权限的角色,然后将它加到这个集合其中。以下就简单看看Oracle中角色的运用。

  上篇文章讲到,为了给多用户授予各种权限,我们用到了“权限传递”来取代给用户们一个个授权,简化了授权过程。但这样的方式较之用“角色”方式授权还是有非常多不便。

  事实上“角色”与普通用户无太大区别,只是一个是“类”一个是“对象”而已。所以对“角色”的操作与对“普通用户”的操作基本同样,例如以下:

  首先用系统用户“sys”连接到Oracle,并创建“角色”myrole:

  

  然后为角色—myrole授权:

  

  创建一个新用户“wangwu”,然后将角色-myrole授权给wangwu:

  

  这样用户“wangwu”就拥有了myrole(多种权限的集合)中的全部权限。我们还能够吧myrole这个权限集合授权给随意的用户,这样,权限授予起来就方便多了。

  注:因为角色范围太大,一旦为角色赋予了某项权限,那么它以下全部的用户都将拥有此权限,所以有些大的“权限”不能直接授予给角色,比方曾经的unlimited tablespace就不能授予角色,只是到Oracle11g,试了一下能够授予给角色了:

  Oracle就说到这里,以下是网上看到的,比較全的Oracle经常使用操作:

oracle用户的权限管理

----sys Login------------
1 创建表空间及暂时表空间
create tablespace csdn1 datafile 'csdn1' size 30m autoextend on;
create temporary tablespace csdn2 tempfile 'csdn2' size 30m autoextend on;
2 创建用户指定表空间及暂时表空间
create user csdn identified by csdn default tablespace csdn1 temporary tablespace csdn2;
3 授予用户各种权利
grant create session to csdn;
grant unlimited tablespace to csdn;
grant connect to csdn; grant resource to csdn;
grant create sequence to csdn; grant create table to csdn;
4 查询当前用户的权限
select * from user_sys_privs;
5 撤销用户各种权限
revoke create table from csdn; revoke create session from csdn;
revoke create sequence to csdn; revoke resource to csdn;
revoke connect to csdn; revoke unlimited tablespace to csdn;
6 通过角色来赋予用户各种权限
create user root identified by root default tablespace csdn1 temporary tablespace csdn2;
create role role1; grant create table to role1;
grant create session to role1;
grant connect to role1;
grant resource to role1;
grant create sequence to role1;
(1) 将角色赋予给用户 grant role1 to root;
(2) 删除角色 drop role role1;
7 序列
create sequence xulie
minvalue 1
maxvalue 222222
start with 1 increment by 1
nocache
nocycle ----csdn Login--------- 1 创建表
drop table tb_book;
create table tb_book ( book_id int primary key not null, book_name varchar(32) not null, book_des varchar(100) not null);
2 通过序列来插入数据
insert into tb_book(book_id,book_name,book_des) values(xulie.nextval,'计算机科学与技术','计算机');
insert into tb_book(book_id,book_name,book_des) values(xulie.nextval,'信息管理技术','信管');
insert into tb_book(book_id,book_name,book_des) values(xulie.nextval,'专业英语','外语');
insert into tb_book(book_id,book_name,book_des) values(xulie.nextval,'土木project建设','土木');
select * from tb_book;
3 创建学生表
create table tb_student ( stu_id int primary key not null, stu_name varchar(32) not null, stu_sex char(2) not null check(stu_sex in('男','女')), stu_age int not null);
4 更改表的别名
rename tb_student to tb_stu;
5 创建借书记录表
create table tb_borrow ( borrow_id int primary key not null, stu_id int not null, book_id int not null); rename tb_borrow to tb_j; alter table tb_j add constraint b_b foreign key(book_id) references tb_book(book_id); alter table tb_j add constraint b_s foreign key(stu_id) references tb_stu(stu_id);
6 查询语句 列出全部借书的记录号 书名 借书的人名
select j.borrow_id,s.stu_name,b.book_name from tb_stu s,tb_book b,tb_j j where s.stu_id=j.stu_id and b.book_id=j.book_id;
列出同一个专业 可是借了不同一本书的学生
select s.zhuanye,s.stu_name,b.book_name from tb_book b,tb_stu s order by s.zhuanye,b.book_name;
7 数值函数
select ceil(13.2) from tb_stu; --向上取整
select floor(12.9) from tb_stu;--向下取整
select power(9,19) from tb_stu;--9的19次方
select sqrt(8) from tb_stu; --8的平方根
select sign(-2) from tb_stu; --正数返1 负数返-1 0返0
select trunc(12.232323123,5) from tb_stu;--取5位小数
select round(1232.343,2) from tb_stu;--小数位为2 四舍五入
select exp(3) from tb_stu; --求指数
select mod(12,8) from tb_stu; --求余数
select ln(10) from tb_stu;--自然对数
select log(10,100) from tb_stu;--以10为底 100的对数
select vsize(1010) from tb_stu;--返回1010所占空间的大小
8 经常使用的函数
select initcap(stu_name) from tb_stu;--首字符转换成大写
select stu_name,instr(stu_name,'s') from tb_stu;--查找s在stu_name中的位置 返回对应的值(0 n)
select length(stu_name) from tb_stu;--返回长度
select upper(stu_name) from tb_stu;--换大写
select lower(stu_name) from tb_stu;--换小写
select lpad(stu_name,11,'Hello') from tb_stu;--长度不够则在左边填充Hello 直到够11

Oracle基础学习5-- Oracle权限之”角色”的更多相关文章

  1. oracle逐步学习总结之权限和角色(基础六)

    原创作品,转自请注明出处:https://www.cnblogs.com/sunshine5683/p/10236129.html 继续上节的索引,这次主要总结oracle数据库的权限问题!(在总结的 ...

  2. Oracle基础学习笔记

    Oracle基础学习笔记 最近找到一份实习工作,有点头疼的是,有阶段性考核,这...,实际想想看,大学期间只学过数据库原理,并没有针对某一数据库管理系统而系统的学习,这正好是一个机会,于是乎用了三天时 ...

  3. Oracle实例、用户、权限和角色

    1.数据库的实例:数据库创建后会有一系列为该数据库提供服务的内存空间和后天进程,称为该数据库的实例.每一个数据库至少会有一个实例为其服务.实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机 ...

  4. Oracle基础(五) 权限管理

    一.数据库权限分类 权限是指用户对某个功能是否具有执行的权利.在Oracle中,权限分为系统权限和对象权限. 1.系统权限 系统规定用户使用数据库的权限.例如创建表空间,创建表,删除表的权利.这些都属 ...

  5. oracle 10g 学习之oracle管理(3)

    怎样将预先写好的sql脚本执行? select * from employees;→107条记录 利用 Oracle 企业管理器连接数据库服务器 点击打开以下界面: 此时已经连接成功了 用 Oracl ...

  6. Oracle基础学习4--Oracle权限传递

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wang379275614/article/details/32215325 以下将用一个实例来解说: ...

  7. Oracle 基础学习笔记

    知识点 一.登陆数据库: 登陆数据库: sqlplus system/oracle123456 二.新建用户.授权(连接数据库.创建表.表空间.查询某用户下的表) 语法: create user [用 ...

  8. Oracle 数据库基础学习 (三) Oracle 四个表结构

    Oracle 四个表的 emp dept  salgrade  bunus 的结构,记住有利于后期SQL语句的学习 雇员表(emp) No. 字段 类型 描述 1 empno NUMBER(4) 表示 ...

  9. Oracle基础学习2--Oracle登录与三种验证机制

    首先,Oracle安装完毕有三个默认用户 Ø  Sys:数据库对象的拥有者.权限最高.password在安装的时候(口令管理)能够改变 Ø  System:数据库管理员,password为manage ...

随机推荐

  1. cocos2dx 编写shader 遇到 溢出问题

    在 编程语言中,不论什么 数据类型 都有 各种 的 局限,无法 表示 现实世界中的 不论什么 情况. 比如 int ,char 会 溢出,float 会 有 溢出 以及 精度 不准确的 情况. 所以 ...

  2. C++空类中的默认函数

    定义一个空的C++类,例如 class Empty { } 一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于 cla ...

  3. Microsoft Visual C++ 不支持long long

    Microsoft Visual C++ 不支持long long 在C/C++中,64为整型一直是一种没有确定规范的数据类型.现今主流的编译器中,对64为整型的支持也是标准不一,形态各异.一般来说, ...

  4. 前端--关于css选择器

    css选择器就好像表达式一样,返回一组或者一个html元素,后面的样式声明块应用到返回的元素上.所以可以把css选择器理解为某个或者某一类html元素的抽象的写法. 在讲具体的各种选择器之前要提一下选 ...

  5. android 注释常用标签

    javadoc: {@link ActivityGroup}   链接到包.类: {@link #setContentView} 用#链接到类成员: @return View The current ...

  6. 跨平台渲染框架尝试 - GPU Buffer的管理(1)

    buffer资源 下面来谈谈buffer的管理.buffer资源从广义上就是C语言的数组.如下图所示. 图 buffer的广义模型 在渲染管线中,无论是opengl还是dx或者其他的渲染api,都会提 ...

  7. CDZSC_2015寒假新人(2)——数学 A

    A - A Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  8. Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 尚未授予访问 Tomcat 服务器的权限。请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用户名和口令。 有关详细信息, 请查看服务器日志。

    错误描述: 发布时控制台出现: 部署错误: 尚未授予访问 Tomcat 服务器的权限.请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用 ...

  9. PROCEDURE_监测系统_原始数据报表数据生成存储过程—求每天平均值插入多表视图

    create or replace procedure proc_generate_report(in_date in varchar2) is  v_retCode varchar2(20);  v ...

  10. TRIGGERS_监测系统_原始数据表触发器—调用告警信息存储过程

    //每次向originaldata表中插入数据就会触发该触发器 create or replace trigger originaldata_to_alarm  after insert on ori ...