oracle grant select any table,select any table的测试

近期,生产的测试系统需要读取实际数据,为了区分用户,做了如下select any Table系统权限的测试

--1.用户test有表T1

TEST@ORA10G>desc t

Name                                                              Null?    Type

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

OWNER                                                                      VARCHAR2(30)

OBJECT_NAME                                                                VARCHAR2(128)

SUBOBJECT_NAME                                                             VARCHAR2(30)

OBJECT_ID                                                                  NUMBER

DATA_OBJECT_ID                                                             NUMBER

OBJECT_TYPE                                                                VARCHAR2(19)

CREATED                                                                    DATE

LAST_DDL_TIME                                                              DATE

TIMESTAMP                                                                  VARCHAR2(19)

STATUS                                                                     VARCHAR2(7)

TEMPORARY                                                                  VARCHAR2(1)

GENERATED                                                                  VARCHAR2(1)

SECONDARY                                                                  VARCHAR2(1)

--2. 创建用户test1,授予create session的权限

SYS@ORA10G>create user test1 identified by test1;

User created.

SYS@ORA10G>grant create session to test1;

Grant succeeded.

--3. 测试用户test1是否可以访问test用户下的t表

TEST1@ORA10G>select count(*) from test.t;

select count(*) from test.t

*

ERROR at line 1:

ORA-00942: table or view does not exist

--4. 授予test1用户select any table的系统权限并测试

SYS@ORA10G>grant select any table to test1;

Grant succeeded.

--发现test1用户可以访问test用户下的t表

TEST1@ORA10G>select count(*) from test.t;

COUNT(*)

----------

405720

--5. 测试是否可以访问test用户下的视图

--创建视图

TEST@ORA10G>create view v_t as select * from t;

View created.

--test1也可以访问test用户下的视图

TEST1@ORA10G>select count(*) from test.v_t;

COUNT(*)

----------

405720

--6. 测试同义词(用户需要有create pubilc synonym 的系统权限)

TEST@ORA10G>create or replace public synonym t for test.t;

Synonym created.

TEST1@ORA10G>select count(*) from t;

COUNT(*)

----------

405720

--能够实现此过程的前提是:test1用户下,不能拥有同名的对象t;且test1用户需要具有select any table的权限;

--需要给应用连接用户create public synonym的权限;

不知道思路是否正确,有待验证~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CREATE USER cedar IDENTIFIED BY cedar DEFAULT TABLESPACE CEDAR_DATA TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK; -- 5 Roles for cedar GRANT DBA TO cedar; GRANT RESOURCE TO cedar WITH ADMIN OPTION; GRANT AQ_ADMINISTRATOR_ROLE TO cedar; GRANT CONNECT TO cedar WITH ADMIN OPTION; GRANT AQ_USER_ROLE TO cedar; ALTER USER cedar DEFAULT ROLE ALL; -- 44 System Privileges for cedar GRANT CREATE ANY DIRECTORY TO cedar WITH ADMIN OPTION; GRANT CREATE PUBLIC SYNONYM TO cedar WITH ADMIN OPTION; GRANT EXECUTE ANY CLASS TO cedar WITH ADMIN OPTION; GRANT DROP ANY VIEW TO cedar WITH ADMIN OPTION; GRANT CREATE CLUSTER TO cedar; GRANT ALTER SYSTEM TO cedar; GRANT UPDATE ANY TABLE TO cedar; GRANT INSERT ANY TABLE TO cedar; GRANT LOCK ANY TABLE TO cedar; GRANT CREATE EXTERNAL JOB TO cedar WITH ADMIN OPTION; GRANT EXECUTE ANY PROGRAM TO cedar WITH ADMIN OPTION; GRANT CREATE JOB TO cedar WITH ADMIN OPTION; GRANT DROP ANY DIRECTORY TO cedar WITH ADMIN OPTION; GRANT ALTER ANY TRIGGER TO cedar; GRANT CREATE DATABASE LINK TO cedar; GRANT DROP ANY TABLE TO cedar WITH ADMIN OPTION; GRANT CREATE TABLE TO cedar WITH ADMIN OPTION; GRANT QUERY REWRITE TO cedar; GRANT ANALYZE ANY TO cedar; GRANT DROP ANY TRIGGER TO cedar; GRANT EXECUTE ANY PROCEDURE TO cedar; GRANT SELECT ANY TABLE TO cedar WITH ADMIN OPTION; GRANT ALTER ANY TABLE TO cedar; GRANT UNLIMITED TABLESPACE TO cedar WITH ADMIN OPTION; GRANT CREATE SESSION TO cedar; GRANT CREATE ANY TRIGGER TO cedar; GRANT DROP ANY PROCEDURE TO cedar WITH ADMIN OPTION; GRANT ALTER ANY PROCEDURE TO cedar; GRANT DROP PUBLIC SYNONYM TO cedar WITH ADMIN OPTION; GRANT DROP ANY SYNONYM TO cedar WITH ADMIN OPTION; GRANT MANAGE SCHEDULER TO cedar WITH ADMIN OPTION; GRANT CREATE ANY PROCEDURE TO cedar; GRANT CREATE PROCEDURE TO cedar WITH ADMIN OPTION; GRANT CREATE SEQUENCE TO cedar; GRANT CREATE VIEW TO cedar WITH ADMIN OPTION; GRANT CREATE SYNONYM TO cedar; GRANT DROP ANY INDEX TO cedar; GRANT DELETE ANY TABLE TO cedar; GRANT CREATE ANY TABLE TO cedar; GRANT CREATE ANY JOB TO cedar WITH ADMIN OPTION; GRANT SELECT ANY DICTIONARY TO cedar WITH ADMIN OPTION; GRANT CREATE ROLE TO cedar; GRANT CREATE ANY SYNONYM TO cedar WITH ADMIN OPTION; GRANT ALTER SESSION TO cedar WITH ADMIN OPTION; GRANT EXECUTE ON sys.dbms_aq TO cedar; GRANT EXECUTE ON sys.dbms_aqadm TO cedar; GRANT EXECUTE ON sys.dbms_network_acl_admin TO cedar; GRANT ALL ON sys.DBMS_LOCK TO cedar; 这个SQL在oracle 能用吗
06-08

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值