用DNINMSV31账户登录数据库进行如下操作:

CREATE USER NORTHBOUND IDENTIFIED BYNORTHBOUNDDEFAULTTABLESPACE "TBS_DNINMSV31"TEMPORARYTABLESPACE "TEMP2"

QUOTA UNLIMITEDON"TBS_DNINMSV31";GRANT "CONNECT" TONORTHBOUND;ALTER USER NORTHBOUND DEFAULTROLE NONE;GRANT CREATE SESSION TONORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TONORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TONORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TONORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;

【注】:在用NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。

例如:

select * from DNINMSV31.V_DNDEVICE; --可以正常执行

select * from DNINMSV31.TB_DEVICE where rownum<5; --执行的时候会报表或视图不存在

创建同义词供对方公司系统访问:

CREATE SYNONYM V_DNDEVICE FORDNINMSV31.V_DNDEVICE;CREATE SYNONYM V_DNSUBNE FORDNINMSV31.V_DNSUBNE;CREATE SYNONYM V_DNPACKAGE FORDNINMSV31.V_DNPACKAGE;CREATE SYNONYM V_DNPORT FOR DNINMSV31.V_DNPORT;

第三方的系统直接通过这个同义词就可以访问到用户DNINMSV31中的视图。这也是对系统安全的一种保护措施。第三方系统登录后,只能看到其同义词,其他的都不会访问得到。

最后还要对NORTHBOUND用户进行连接数的限制,以免第三方无限制的连接数据库,造成数据库SESSION暴涨:

conn / assysdbaalter system set resource_limite=true scope=both sid='*';

新建profile, 初始限制为1 ,用于测试。

create profile third_user limit SESSIONS_PER_USER 1FAILED_LOGIN_ATTEMPTS unlimited;alter user NORTHBOUND profile third_user;

将会话数调整到30

alter profile third_user limit SESSIONS_PER_USER 30;

--------------------------------------------------------------------------------------------------

跟第三方做接口程序时给对方开放只能查询某些视图用户的步骤如下:

我们有这样一个需求:在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下的表,以及通过数据库链路访问其他数据库中的表;另一个用户B 能访问到这个用户A 中的视图,并且只能访问视图,且访问连接数有限制。

这个用户B 是用来给其他系统访问的,因此对权限和资源使用都需要有限制条件。

这种需求在很多行业的应用中都很常见。假如这是一道面试题,您该如何去回答呢?

我采用下面的方法来回答这个问题。

第一步,创建新用户A 和B 。

这里用户名称分别为ryd_interface_src  和ryd_interface ,对这两个用户都授予非常有限的权限。

drop user ryd_interface_src cascade;create user ryd_interface_src identified byryd_interface_src;grant connect,create view toryd_interface_src;drop user ryd_interface cascade;create user ryd_interface identified byryd_interface;grant connect,create synonym to ryd_interface;

第二步,登录数据库一个模式中,授权给用户A ,使得用户A 能创建视图

conn qlzqclient/qlzq+client8grant select on INVEST_CLOCK to ryd_interface_src with grant option;grant select on INVEST_LOG to ryd_interface_src with grant option;

这里授权方法加了一个with grant option ,请注意。

第三步,登录数据库用户A 中,创建视图

conn ryd_interface_src/ryd_interface_srccreate or replace view run_views as

select id as doc_id, title,fbsj as upload_date,'' as branch_code from qlzq.runs_lantern@CLIENT_QLZQWEB

where EXT1='1' and sysdate >START_TIMEand sysdate

select a.doc_id,a.title,a.upload_date,a.branch_code from qlzq.cms_doc_single_attr@CLIENT_QLZQWEBaleft join qlzq.cms_doc_category_map@CLIENT_QLZQWEB b on a.doc_id=b.doc_idwherea.state=1 and a.is_delete =0

and a.upload_date> sysdate-90

and b.cat_id=4;create or replace view INVEST_CLOCK_VIEWS as

select * fromqlzqclient.INVEST_CLOCK;create or replace view INVEST_LOG_VIEWS as

select * from qlzqclient.INVEST_LOG;

第四步,在数据库用户A 中,将视图查询权限授予给用户B

因为在步骤二中,加了with grant option ,所以这里视图查询权限可以成功授予。

grant select on INVEST_CLOCK_views toryd_interface;grant select on INVEST_LOG_views toryd_interface;grant select on run_views to ryd_interface;

第五步,在数据库用户B 中,检查视图能否查询得到,再创建同义词。

conn ryd_interface/ryd_interfaceselect count(*) fromryd_interface_src.run_views;select count(*) fromryd_interface_src.INVEST_CLOCK_views;select count(*) fromryd_interface_src.INVEST_LOG_views;create synonym run_views forryd_interface_src.run_views;create synonym INVEST_CLOCK_views forryd_interface_src.INVEST_CLOCK_views;create synonym INVEST_log_views for ryd_interface_src.INVEST_log_views;

第三方的系统直接通过这个同义词就可以访问到用户A 中的视图。这也是对系统安全的一种保护措施。第三方系统登录后,只能看到其同义词,其他的都不会访问得到。

第六步,限制资源使用

因为用户B 是给第三方系统使用,我们无法控制第三方应用的质量,为了防止在应用出现异常连接时数据库会话数暴涨导致数据库整体服务出现故障,所以我们对该用户的数据库会

话数做一个限制。

这里采用profile 的sessions_per_user 功能,实现单个用户会话数的限制。

conn / as sysdba

alter system set resource_limite=true scope=both sid='*';

新建profile, 初始限制为1 ,用于测试。

create profile third_user limit SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS unlimited;

alter user ryd_interface profile third_user;

将会话数调整到30

alter profile third_user limit SESSIONS_PER_USER 30;

通过以上操作,我们就可以实现这个需求了。

--------------------------------------------------------------------------------------------------

GRANT debug any procedure, debug connect session TOhnckb;grant select on sys.dba_pending_transactions tohnckb;grant CREATE VIEW,CREATE JOB,CREATE SYNONYM tohnckb;grant CONNECT,RESOURCE to hnckb;

1.标准角色

CONNECT

RESOURCE

2.系统权限

CREATE VIEW

CREATE DATABASELINKCREATEJOBCREATESYNONYM

UNLIMITED TABLESPACE

更改定额

命令:ALTER USER 名称 QUOTA 0 ON 表空间名

ALTER USER 名字 QUOTA (数值)K|M|UNLIMITED ON 表空间名;

使用方法:

A、控制用户数据增长

B、当用户拥有一定的数据,而管理员不想让他在增加新的数据的时候。

C、当将用户定额设为零的时候,用户不能创建新的数据,但原有数据仍可访问。

3.对象权限

DBA_PENDING_TRANSACTIONS (SELECT) — XA事务支持grant select on sys.dba_pending_transactions to user;

4.建议开放

DEBUG CONNECT SESSION                — 调试存储过程

例如:

GRANT debug any procedure, debug connect session TO hr;

Oracle创建表空间、创建用户、授权、授权对象的访问以及查看权限

1.创建临时表空间

Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结

果进行排序。

临时表空间的主要作用:

索引create或rebuild

Order by 或 group by

Distinct 操作

Union 或 intersect 或 minus

Sort-merge joins

CREATE TEMPORARYTABLESPACE “TEST_TEMP”

TEMPFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\GIS\TEST_DATA.ora’

SIZE 20M

AUTOEXTENDON

NEXT32M MAXSIZE 2048M

EXTENT MANAGEMENT LOCAL;

2.创建用户表空间

CREATETABLESPACE “TEST_DATA”

LOGGING

DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\GIS\TEST_DATA.ora’

SIZE 20M

AUTOEXTENDON

NEXT32M MAXSIZE 2048M

EXTENT MANAGEMENT LOCAL;

3.创建用户并设置其表空间

username:usertest

password:userpwdCREATE USER usertest IDENTIFIED BYuserpwdDEFAULTTABLESPACE TEST_DATATEMPORARY TABLESPACE TEST_TEMP;

4.给用户授权

GRANT

CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,ALTER ANY TABLE, ALTER ANY PROCEDURE,DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE

TO username;

首先授权用户testuser两个基本的角色权限

CONNECT角色:    –是授予最终用户的典型权利,最基本的

CREATE SESSION –建立会话

RESOURCE角色:    –是授予开发人员的

CREATECLUSTER –建立聚簇CREATE PROCEDURE–建立过程CREATESEQUENCE –建立序列CREATE TABLE–建表CREATE TRIGGER–建立触发器CREATETYPE –建立类型CREATEOPERATOR –创建操作者CREATEINDEXTYPE –创建索引类型CREATE TABLE –创建表

授权角色给用户的sql语句:

GRANT role TO username;

5.查看用户权限

查看所有用户

SELECT * FROMDBA_USERS;SELECT * FROMALL_USERS;SELECT * FROM USER_USERS;

查看用户系统权限

SELECT * FROMDBA_SYS_PRIVS;SELECT * FROM USER_SYS_PRIVS;

查看用户对象或角色权限

SELECT * FROMDBA_TAB_PRIVS;SELECT * FROMALL_TAB_PRIVS;SELECT * FROM USER_TAB_PRIVS;

查看所有角色

SELECT * FROM DBA_ROLES;

查看用户或角色所拥有的角色

SELECT * FROMDBA_ROLE_PRIVS;SELECT * FROM USER_ROLE_PRIVS;

遇到no privileges on tablespace ‘tablespace ‘

alter user userquota 10M[unlimited] on tablespace;

oracle开放查询表权限_Oracle创建用户并给用户授权查询指定表或视图的权限相关推荐

  1. oracle开放查询表权限_(转载)Oracle创建用户并给用户授权查询指定表或视图的权限...

    用DNINMSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TB ...

  2. Oracle创建用户并给用户授权查询指定表或视图的权限

    MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND  DEFAULT TABLESPACE "TBS_DN ...

  3. Oracle 当前用户给另一个用户授权查询指定表或视图的权,否则另一个用户提示不存在视图或表

    用DNINMSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND  DEFAULT TABLESPACE "T ...

  4. Oracle创建用户、角色、授权、建表

    Oracle创建用户.角色.授权.建表 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,crea ...

  5. oracle开放查询表权限_Oracle用户权限表的管理方法

    一.创建 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二. 登陆 sqlplus / as sysdba; ...

  6. oracle开放查询表权限_oracle 查询当前用户的表和其他用户的表

    首先 当前的用户 需要有查询其他用户的表的 权限 然后 如果是用该用户登录使用以下语句: SELECT * FROM USER_TABLES; 如果是用其他用户: SELECT * FROM ALL_ ...

  7. Oracle新建用户、角色,授权,建表空间

    oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,gr ...

  8. sql 账号查询一个表勾选那个权限_Spring Cloud微服务架构中的数据权限DataPermision实现方案...

    Spring Cloud微服务架构中的数据权限DataPermision实现方案 一.出现原因 在Spring Cloud的微服务架构中,常见的权限控制除了菜单权限外,还有数据权限DataPermis ...

  9. 01219 oracle,ORA-01219: 数据库或可插入数据库未打开: 仅允许在固定表或视图中查询 oracle...

    一周没用过oracle,打开数据库的时候报错: 执行请求的操作时遇到错误: ORA-01219: 数据库或可插入数据库未打开: 仅允许在固定表或视图中查询 01219. 00000 - "d ...

最新文章

  1. Bzoj3530: [Sdoi2014]数数
  2. html div box,html – 为转换后的div添加box-shadow
  3. 对java:comp/env的研究
  4. ASP.NET Core中间件(Middleware)实现WCF SOAP服务端解析
  5. apmserver导入MySQL_mysql数据库导入导出
  6. 协议簇:TCP 解析:TCP 数据传输
  7. 前端javascript经典面试题集合(2020年最新)
  8. CentOS中TFTP配置
  9. [译] 构建流畅的交互界面
  10. Linux 查看系统所有用户
  11. 清除每隔5000毫秒请求一次接口的定时器(需求:每当我手动核销电子码,页面上的显示数据要实时更新到)...
  12. 房产抵押不良资产如何处置?
  13. Pycon 2017: Python可视化库大全
  14. Debian搭建PPTP
  15. [推荐]中国网管的知识宝库-网管之家
  16. Yolov5身份证检测——模型训练
  17. ISP—图像调试实习生(第10天)
  18. 利用ESP8266-12F实现与51单片机通信及温湿度传感器数据交互
  19. 将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。输出逆序后数组的整数,每两个整数之间用空格分隔。
  20. 【CAN总线】CAN总线总结

热门文章

  1. 网站服务器选择什么操作系统,网站服务器选择哪种操作系统比较好
  2. turtle实例8 玫瑰曲线
  3. Day14.监听器之察看结果树+断言结果+聚合报告+图形结果+用表格察看结果
  4. layer遮罩层 简单的遮罩层
  5. 梧桐新叶让我怀念父亲
  6. python逢7跳过_07.报数游戏:7的倍数或含7的数跳过,趣说python循环里的break和continue...
  7. 基于FME实现不动产数据一键导出自然资源部汇交格式
  8. 音视频开发中常见基础问题总结
  9. 什么是子网掩码,如何判断两个IP是不是同一网段
  10. Python语言零基础入门教程(一)