oracle 建立视图,创建用户并授予查询权限【转】

本文详细介绍了如何在数据库中创建视图并为特定用户分配查询权限的过程。包括创建视图、用户、设定权限、设置同义词以及限制用户会话数的具体步骤。
部署运行你感兴趣的模型镜像

一、需求

数据库有个表car,需要为这个表建立一个视图view_car,并新建一个用户user01,赋予查询这个视图的权限

 

二、实施步骤

1、以管理员clgl登陆数据库,新建视图view_car:

create or replace view view_car as select * from CAR;

2、新建用户user01

create user user01
identified by "123456";

3、授予用户user01权限

grant select on view_car_runtime_b to user01;    //查询视图权限
grant connect to user01;                                   //连接数据库权限
grant create synonym to user01;                        //新建同义词权限

4、以用户user01登陆数据库,可以访问到视图view_car的信息

select * from clgl.view_car;      //查询视图view_car的信息,由于每次都需要加上用户前缀clgl.,十分不方便,因此设置一个同义词方便查询

5、为视图clgl.view_car新建一个别名car

create synonym car for clgl.view_car;    //设置clgl.view_car的别名为car

select * from car;    //用户可以直接输入car查询数据

6、以clgl登陆数据库,设置用户user01的允许访问会话数

alter system set resource_limit=true scope=both sid='*';     //使用resource_limit及profile限制用户连接
create profile user01_profile limit SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS unlimited;   //新建一个user profile:user01_profile 
alter user user01 profile user01_profile;    //更改用户user01的profile为user01_profile
alter profile user01_profile limit SESSIONS_PER_USER 2;  //限定用户user01的连接数为2

当user01的访问连接数超过三个时,会提示错误:ora-02391:exceeded simultaneous sessions_per_user limit

分类: 数据库

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### 在Oracle数据库中为新建用户授予特定视图查询权限Oracle数据库中,若要为新建用户授予特定视图查询权限,需要确保以下几点: 1. **创建视图时的权限要求**:如果视图是基于其他表创建的,则创建视图用户必须具有对这些表的`SELECT`权限且在授权时需要使用`WITH GRANT OPTION`选项[^1]。否则,该用户无法将视图查询权限级联授予其他用户。 2. **授权语句**:可以通过`GRANT SELECT ON view_name TO user_name`语句为指定用户授予视图查询权限。如果希望该用户能够进一步将此权限授予其他用户,则需要在授权时添加`WITH GRANT OPTION`选项[^1]。 以下是具体的实现步骤和代码示例: #### 创建视图 假设有一个名为`NEWVIEWS11`的视图,其基于表`TABLE_A`创建创建视图用户需要具备`TABLE_A`的`SELECT`权限且在授权时使用了`WITH GRANT OPTION`[^1]。 ```sql CREATE VIEW NEWVIEWS11 AS SELECT column1, column2 FROM TABLE_A; ``` #### 授权给新用户 假设新建用户为`NEW_USER`,可以使用以下语句为其授予视图`NEWVIEWS11`的查询权限: ```sql GRANT SELECT ON NEWVIEWS11 TO NEW_USER; ``` 如果希望`NEW_USER`能够进一步将此权限授予其他用户,则需要添加`WITH GRANT OPTION`选项: ```sql GRANT SELECT ON NEWVIEWS11 TO NEW_USER WITH GRANT OPTION; ``` #### 注意事项 - 如果视图依赖于多个表,则创建视图用户必须对所有相关表具有`SELECT`权限且在授权时使用了`WITH GRANT OPTION`[^1]。 - 如果授权过程中出现权限不足的问题,可能是因为创建视图用户没有正确使用`WITH GRANT OPTION`选项,或者视图依赖的表权限未正确授予。 #### 示例验证 以下是一个完整的示例,展示如何为新建用户授予视图查询权限: ```sql -- 假设当前用户为 OWNER,拥有 TABLE_A 的所有权 CREATE TABLE TABLE_A ( column1 NUMBER, column2 VARCHAR2(50) ); -- 创建视图 NEWVIEWS11 CREATE VIEW NEWVIEWS11 AS SELECT column1, column2 FROM TABLE_A; -- 授予 NEW_USER 查询 NEWVIEWS11 的权限 GRANT SELECT ON NEWVIEWS11 TO NEW_USER; -- 如果希望 NEW_USER 能够进一步授予其他用户权限 GRANT SELECT ON NEWVIEWS11 TO NEW_USER WITH GRANT OPTION; ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值