2)、resource角色
resource角色具有应用开发人员需要的其它权限,比如建立存储过程、触发器等。这里需要注意的是resource角色隐含了unlimited tablespace 系统权限。resource
角色具有以下权限:create cluster ,create
indextype ,create table ,create type ,create sequence , create procedure ,create trigger 。 3)、dba角色
dba角色具有所有的系统权限,及with admin option 选项, 默认的dba用户为sys和system 他们可以将任何系统权限授予其它用户。 但是要注意的是dba角色不具备sysdba和sysoper 的特权(启动和关闭数据库)。 2、自定义角色
顾名思义就是自己定义的角色,根据自己的需要来定义。一般是dba来建立,如果用的别的用户来建立,则需要具有create role 的系统权限,在建立角色时可以指定验证方式(不验证,数据库验证等)。 1)、建立角色(不验证)
如果角色是公用的角色,可以采用不验证的方式建立角色。 Create role 角色名 not identified ; 2)、建立角色(数据库验证)
采用这样的方式时,角色名、口令存放在数据库中。当激活该角色时,必须提供口令。在建立这种角色时,需要为其提供口令。
Create role 角色名 identified by shunping ; 3、角色授权
当建立角色时,角色没有任何权限,为了使得角色完成特定任务,必须为其授予相应的系统权限和对象权限。
1、给角色授权
给角色授予权限和给用户授权没有太大区别,但是注意:系统权限的unlimited tablespace 和对象权限的with grant option 选项是不能授予角色的。
Grant create session to 角色名 with admin option
Grant insert ,update , delete on scott.emp to 角色名 4、显示角色信息 1)、显示所有角色
Select * from dba_roles ; 2)、显示角色具有的系统权限
Select privilege,admin_option from role_sys_privs where role =’角色名’ ;
3)、显示角色具有的对象权限
通过查询数据字典视图dba_tab_privs 可以查看角色具有的对象权限或是列的权限。
4)、显示用户具有的角色,及默认角色
当以用户的身份连接到数据库时,oracle 会自动的激活默认的角色,通过查询数据字典视图dba_role_privs 可以显示某个用户具有的所有角色及当前默认的角色。
7 PLSQL编程 7.1 存储过程 1、 2、
块(编程):包含过程(存储过程)、函数、触发器、包。 标示符的命名规范:
1)、定义变量时,建议用v_作为前缀 v_sal
2)、定义常量时,建议用c_作为前缀 c_rate
3)、定义游标时,建议用_cursor 作为后缀 emp_cursor 4)、定义例外时,建议用e_作为前缀 e_error 3、块结构示意图
Pl/sql 块由三个部分组成:定义部分、执行部分、例外处理部分,如下: Declare
/* 定义部分 ----定义常量、变量、 游标、 例外、复杂数据类型 */ Begin
/* 执行部分 ----要执行的pl/sql语句和sql语句 */ Exception
/* 例外处理部分 ----处理运行的各种错误 */ End ;
4、set serveroutput on ----打开输出选项
set serveroutput off ---关闭输出选项
dbms_output.put_line(‘hello’) ;
5、包含定义部分和执行部分的pl/sql块。 Declare
V_ename varcha2(5) ; ----定义字符串变量
Begin
Select ename into v_ename from emp where empno=&no ;
Dbms_output.put_line(‘雇员名:’|| v_ename) ;
Exception
When no_data_found then
Dbms_output.put_line(‘朋友,你的编号输入有错误! ’);
End ; /
7.2 包
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码,包体用于实现包规范中的过程和函数。
我们可以使用create package 命令来创建包; 建立包体可以使用create package body 命令。
当调用包的过程和函数时,在过程和函数前需要带上包名,如果要访问其它方案的包,还需要在包名前加方案名。
7.3 触发器
触发器是指隐含的执行的存储过程。当定义触发器时,必须要指定触发的事件和触发的操作,常用的触发事件包含insert , update , delete 语句,而触发操作实际就是一个pl/sql块。可以使用create tigger 来建立触发器。 触发器可以维护数据库的安全和一致性。
7.4 定义并使用变量
在编写pl/sql程序时,可以定义变量和常量;在pl/sql程序中包括有: 1、 标量类型(scalar)。2、复合类型( composite) 。3、参照类型(reference)。4、lob(large object).。
标量(scalar)--常用类型
在编写pl/sql程序时,如果要使用变量,需在定义部分定义变量。Pl/sql 中定义变量和常量的语法如下:
Identifier [constant ] datatype [ not null ] [: = default expr ]
Identifier : 名称
Constant :指定常量。需要指定它的初始值,且其值是不能改变的。
Datatype:数据类型
Not null :指定变量值不能为null
:= 给变量或是常量指定初始值
Default 用于指定初始值
Expr: 指定初始值的pl/sql 表达式,可是文本值、其它变量、函数等。 2、标量定义的案例
1、定义一个变长字符串 v_ename varchar2(10)
2、定义一个小数 范围 -9999.99~9999.99 v_sal number(6,2) ; 3、定义一个小数并给一个初始值为5.4:=是pl/sql的赋值号
V_sal2 number(6,2): = 5.4
4、定义一个日期类型的数据
V_hiredate date ;
5、定义一个布尔变量,不能为空,初始值为false.
V_valid boolean not null default false ;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库oracle数据库自学文档整理资料,详细!!!(6)在线全文阅读。
相关推荐: