①.、首先要保证该数据库用户有删除序列和新建序列的权限,存储过程中这个权限要显示赋权:
grant create sequence to 数据库用户;
grant drop any sequence to 数据库用户;
创建序列:
execute immediate
'create sequence 序列名' || chr(10) ||
'minvalue 1' || chr(10) ||
'start with 1' || chr(10) ||
'increment by 1' || chr(10) ||
删除序列:
execute immediate 'drop sequence 序列名';
一般创建用户用的是create user,然后再通过grant赋权.
创建:create user XXXX identified by xxxxx;
赋权:grant connect,resource,XXXXXX to XXXXXX; (具体权利查询dba_sys_privs)
①.、create user userName identified by password;
执行上面三步就行了,那么这个用户就只有查询权限,其他的权限都没有!!
延展阅读:
oracle
ORACLE中怎么设置SEQUENCE权限步骤如下:
①.、Create Sequence
首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限.
创建语句如下:
CREATE?SEQUENCE seqTest
INCREMENT?BY?1?--?每次加几个
START?WITH?1?--?从1开始计数
NOMAXvalue?--?不设置最大值
NOCYCLE?--?一直累加,不循环
CACHE?10;?--设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE
定义好sequence后,你就可以用currVal,nextVal取得值.
CurrVal:返回 sequence的当前值
NextVal:增加sequence的值,然后返回 增加后sequence值
得到值语句如下:
SELECT?Sequence名称.CurrVal?FROM?DUAL;?
如得到上边创建Sequence值的语句为:
select?seqtest.currval?from?dual
在Sql语句中可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- INSERT语句的values中
- UPDATE 的 SET中
如在插入语句中
insert?into?表名(id,name)values(seqtest.Nextval,'sequence?插入测试');
拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create.
DROP?SEQUENCE?seqTest;?
create?or?replace?trigger?tri_test_id
before?insert?on?S_Depart?--S_Depart?是表名
for?each?row
declare
nextid?number;
begin
IF?:new.DepartId?IS?NULLor?:new.DepartId=0?THEN?--DepartId是列名
select?SEQ_ID.nextval?--SEQ_ID正是刚才创建的
into?nextid
from?sys.dual;
:new.DepartId:=nextid;
end?if;
end?tri_test_id;
可以按下列步骤:
如果这个序列是要给其他用户使用:
conn?sys/password?as?sysdba
grant?create?sequence?to?用户;
CREATE?SEQUENCE?seqTest
具体需要哪些权限需要看用户的实际需要.我们要在有最高权限的system用户创建用户,再赋予新建用户权限,只有给新建用户权限,新建用户才能干什么.
第一段:权限分为系统权限及对象权限.
①.、系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言).
①.)、DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构.
对于普通用户:授予connect, resource权限.
对于DBA管理用户:授予connect,resource, dba权限.
CREATE SESSION,创建会话,才可以打开界面
CREATE TABLE,创建表,可创建空表,但没有权限插入数据
CREATE SEQUENCE创建序列
CREATE VIEW,创建视图
扩展资料
第一段:赋权方式,有两种赋予用户权限的方式,
①.、对用户赋权
一对一的赋予新建用户权限,这样赋予新建用户权限比较有活性,如果新建用户多了,就比较麻烦.
先创建角色,将权限先赋给角色代理,最后将角色代理的权限赋新建用户,这样比较死板,但是可以同时赋给很多用户.
参考资料
Oracle官网-Grant
以上就是土嘎嘎小编为大家整理的oracle序列如何赋权相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!