扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
具体需要哪些权限需要看用户的实际需要。我们要在有最高权限的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
1、双击桌面sqldeveloper软件图标启动软件。
2、新建数据库连接,填写登录数据库信息并选择相应角色进行登录。
3、登录成功后先查询出hr用户下所有的表名,可直接通过dba_tables来进行查询。
4、把查询权限赋给测试用户的方法有两种,一种为当用户下的表比较少的情况下可以直接通过grant select/delete/update on hr.table-name to cem。
5、授权成功后使用测试用户进行登录即可对授权过查询权限的表进行访问。
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;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流