| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Oracle数据库各用户间表访问 -> 正文阅读 |
|
[大数据]Oracle数据库各用户间表访问 |
Oracle数据库有一个用户的概念,我把不同的用户理解为不同的库。 简单来说,我把交易库称为TRADE用户,我把客户管理的库成为ACCOUNT用户。 正常情况下,每个用户访问自己对应的表,但是当需要跨用户访问时,我们就有三个选择。 一.交易库赋予客户库查询交易表权限,我们称之为授权,关键字为grant。现在我们模拟从A用户,把ableName的操作权限赋予B用户,以下授权语句应该在A库执行。 1. SELECT * FROM? dba_users; --查询数据库中的所有用户 2.GRANT SELECT ON tableName to B;--授权查询(将表tableName的查询权授给B) GRANT?INSERT ON tableName to B;--授权插入(将表tableName的插入权授给B) GRANT?UPDATE ON tableName to B;--授权更新(将表tableName的更新权授给B) GRANT UPDATE ON tableName to Bwith grant option; --授权更新权限转移给用户,被用户可以继续授权给其他用户; GRANT EXECUTE? ON ProceDureName?to B;--授权存储过程 3.Revoke select on tableName from B; --收回查询表的权限; Revoke all on tableName from B;--收回表tableName 的所有权限; 4.SELECT? * from dba_tab_privs where grantee=upper('DC_CH');--查询一个用户被赋予的对象权限 SELECT * from dba_sys_privs where grantee=upper('DC_CH');--查询一个用户拥有的系统权限 SELECT*? from session_privs ;--当前会话有效的系统权限 这样,我们直接就可以从B用户操作A用户的tableName这张表了,对应的语句为 SELECT * from A.tableName; UPDATE?A.tableName set...等等 二.把操作粒度变大一点,使B用户像操作自己的表一样操作A用户中的表,引入同义词这个概念同义词的好处 1、不占内存空间,节省大量的数据库空间 2、简化了数据库对象的访问 3、提高了数据库对象访问的安全性 4、扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接 1.在A用户中建立私有同义词 CREATE SYNONYM TB FOR tableName; 这样SELECT * FROM TB=?SELECT * FROM?tableName.?? 假设我们已经把这张表的不同权限授予了B用户,那么我们可以从B中以SELECT * FROM A.TB的形式访问到tableName。 2.在A用户中建立共有同义词 CREATE PUBLIC SYNONYM TB FOR tableName; 这样这个库下的所有用户都能直接以SELECT * FROM TB的方式访问tableName。 --?删除公有同义词: drop?public?synonym?TB ; --?删除私有同义词: drop?synonym?TB ; 三.粒度更大一点,B用户可以操作A用户下面全部的表,引入DB Link。1.通过界面化工具建立数据库连接。 2.通过SQL语句建立数据库连接 ? create database link DS 从B用户访问A用户的表的方式为 SELECT * FROM TB@A. 这样三种库用户访问的方式就介绍完了,至于如何取舍,还是根据实际情况来决定。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:08:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |