oracle序列如何赋权,Oracle赋权限

请教:动态创建oracle序列,使用时提示序列不

1、首先要保证该数据库用户有删除序列和新建序列的权限,存储过程中这个权限要显示赋权:

我们提供的服务有:网站设计制作、做网站、微信公众号开发、网站优化、网站认证、兰西ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的兰西网站制作公司

grant create sequence to 数据库用户;

grant drop any sequence to 数据库用户;

2、存储过程中创建序列和删除序列:

创建序列:

execute immediate

'create sequence 序列名' || chr(10) ||

'minvalue 1' || chr(10) ||

'maxvalue 999999999999999999999999999' || chr(10) ||

'start with 1' || chr(10) ||

'increment by 1' || chr(10) ||

'cache 20';

删除序列:

execute immediate 'drop sequence 序列名';

怎么给oracle数据库创建用户,并赋权限

一般创建用户用的是create user,然后再通过grant赋权。

创建:create user XXXX identified by xxxxx;

赋权:grant connect,resource,XXXXXX to XXXXXX; (具体权利查询dba_sys_privs)

oracle如何给用户创建查询序列的权限?

1、create user userName identified by password;

2、grant select any table to userName; --授予查询任何表

3、grant select any dictionary to userName;--授予 查询任何字典

执行上面三步就行了,那么这个用户就只有查询权限,其他的权限都没有!!

延展阅读:

oracle

甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。

ORACLE中怎么设置SEQUENCE权限?

ORACLE中怎么设置SEQUENCE权限步骤如下:

1、Create Sequence

首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。

创建语句如下:

CREATE SEQUENCE seqTest

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXvalue -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

2、得到Sequence值 

定义好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 插入测试');

3、Alter Sequence 

拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create。

4、Drop Sequence

DROP SEQUENCE seqTest; 

5、一个例子

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;

ORACLE中怎么设置SEQUENCE权限啊

可以按下列步骤:

如果这个序列是要给其他用户使用:

conn sys/password  as sysdba

grant create sequence to 用户;

创建序列:

CREATE SEQUENCE seqTest

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXvalue -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

oracle创建用户后一般给什么权限

具体需要哪些权限需要看用户的实际需要。我们要在有最高权限的system用户创建用户,再赋予新建用户权限,只有给新建用户权限,新建用户才能干什么。

一、权限分为系统权限及对象权限。

1、系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。

1)、DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

2)、RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

3)、CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

2、对象权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

CREATE SESSION,创建会话,才可以打开界面

CREATE TABLE,创建表,可创建空表,但没有权限插入数据

CREATE SEQUENCE创建序列

CREATE VIEW,创建视图

扩展资料

一、赋权方式,有两种赋予用户权限的方式,

1、对用户赋权

一对一的赋予新建用户权限,这样赋予新建用户权限比较有活性,如果新建用户多了,就比较麻烦。

2、对角色赋权

先创建角色,将权限先赋给角色代理,最后将角色代理的权限赋新建用户,这样比较死板,但是可以同时赋给很多用户。

参考资料

Oracle官网-Grant


当前标题:oracle序列如何赋权,Oracle赋权限
转载注明:http://myzitong.com/article/hchici.html