通过创建视图及同义词方式实现普通用户查询X$基表的方法
来源:互联网 发布:数据库分组查询语句 编辑:程序博客网 时间:2024/05/21 06:33
看到群里有人问普通用户访问基表的问题,测试下如下:
X$基表可以通过创建视图,再对视图创建同义词方式、授权的方式来实现普通用户可以访问基表。
当然了普通用户访基表也是没道理的,理论上没必要,权限控制上也应该是不允许的。此处不考虑合理性,就此问题进行实验。
1.直接对X$基表创建同义词,其它用户无法实现访问。
SQL> show userUSER is "SYS"SQL> select count(*) from sys.x$kcbwds; COUNT(*)---------- 8SQL> CREATE PUBLIC SYNONYM kcbwds FOR sys.x$kcbwds;Synonym created.SQL> grant select on sys.x$kcbwds to bys;grant select on sys.x$kcbwds to bys *ERROR at line 1:ORA-02030: can only select from fixed tables/views----------SQL> show userUSER is "BYS"SQL> select count(*) from sys.x$kcbwds;select count(*) from sys.x$kcbwds *ERROR at line 1:ORA-00942: table or view does not existSQL> select count(*) from kcbwds;select count(*) from kcbwds *ERROR at line 1:ORA-00942: table or view does not exist
--------------
2.使用对X$基表创建视图的方法可以实现普通用户访问X$:
SQL> show userUSER is "SYS"SQL> select count(*) from x$kcbwds; COUNT(*)---------- 8SQL> create view testa as select * from sys.x$kcbwds;View created.SQL> grant select on sys.testa to bys;Grant succeeded.SQL> conn bys/bysConnected.SQL> show userUSER is "BYS"SQL> select count(*) from sys.testa; COUNT(*)---------- 8SQL> desc sys.testa Name Null? Type ----------------------------------------- -------- ---------------------------- ADDR RAW(4) INDX NUMBER INST_ID NUMBER SET_ID NUMBER POOL_ID NUMBER DBWR_NUM NUMBER BLK_SIZE NUMBER后面省略。。。
3.可以通过对视图再加同义词方式来实现更简单的访问
SQL> CREATE PUBLIC SYNONYM testb FOR sys.testa;Synonym created.SQL> show userUSER is "SYS"SQL> conn / as sysdbaConnected.SQL> conn bys/bysConnected.SQL> select count(*) from testb; COUNT(*)---------- 8
0 0
- 通过创建视图及同义词方式实现普通用户查询X$基表的方法
- oracle视图,同义词,创建及更改
- orcale 数据库查询同义词,视图,触发器,索引对应的基表
- 同义词的作用及创建
- 根据同义词创建视图
- Oracle创建DBlink和Sysnonyms(同义词,表映射)的方法及常见问题处理
- solr实现同义词查询及分词粒度
- 同义词+同义词类别+创建同义词+删除同义词+同义词的作用
- lucene--同义词简单的实现方式
- 导出所有对象(表、索引、视图、同义词)的创建脚本
- Oracle同义词创建及其作用,解决java中数据库报错的表或视图不存在
- Oracle创建表、约束、视图、索引、序列、同义词、表空间
- Oracle创建表、约束、视图、索引、序列、同义词、表空间
- 给表或者视图取一个别名(创建同义词)
- Oracle创建视图、通过视图创建表
- 同义词信息的查询
- Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
- Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
- python SQLAlchemy 使用经验
- Service之跨进程调用服务ADIL详解(一)
- javaweb入门篇(一)
- a little about c++
- leetcode 19. Remove Nth Node From End of List
- 通过创建视图及同义词方式实现普通用户查询X$基表的方法
- VIM编辑器
- Hibernate学习笔记-懒加载Lazy-true
- JavaScript创建对象的7种模式
- Qt中带有参数的信号传递出错--自定义类型的参数
- android中的数据存储
- String.format()的用法
- HDU 4624 【期望】
- java集合------TreeSet