惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - 一江水

什么时候使用绑定变量性能反而更差 模拟登录新浪微博(Python) Oracle ASM 详解 Oracle OS Block Header 物化视图日志没有清除 Oracle如何根据物化视图日志快速刷新物化视图 物化视图注册信息的清除 Oracle RAC 碰到 gc buffer busy Oracle RAC 常用维护工具和命令 RAC Debug开关修改工具 Java连接Sybase ASE数据库的一个简单例子 中文图解Python脚本 解决sybase中文以及大小写问题(服务器端)(utf8 乱码) 如何使Sybase ASE中对象名不区分大小写? 使用 Oracle 数据库 10g内部的 ETL 基础架构 Android系统手机端抓包方法 RAC中如何更改对外网卡和内部互联网卡的IP及VIP ORA-12545: 因目标主机或对象不存在, 连接失败 Oracle数据块损坏恢复总结[转]
Oracle代理用户(Proxy User)
一江水 · 2012-09-03 · via 博客园 - 一江水

Oracle 10gR2下,我们可以使用企业用户代理(Enterprise User Proxy),来通过其他用户登录数据库

使用的语句格式如下:

ALTER USER target_user GRANT CONNECT THROUGH proxy_user;

来看一个简单的例子:

SQL>conn / as sysdba

Connected.

SQL>select * from v$version;

BANNER

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

Oracle Database10gEnterpriseEdition Release10.2.0.3.0 - 64bi

PL/SQL Release10.2.0.3.0 - Production

CORE   10.2.0.3.0     Production

TNS for IBM/AIX RISC System/6000: Version10.2.0.3.0 - Productio

NLSRTL Version10.2.0.3.0 - Production

SQL>create user test1 identified by test1;

User created.

SQL>create user test2 identified by test2;

User created.

SQL>alter user test2 grant connect through test1;       这里的test1test2的代理用户

User altered.

SQL>grant connect,resource to test2;

Grant succeeded.

SQL>conn test2/test2;

Connected.

SQL>create table t2 (num number);

Table created.

这里创建了2个用户:test1test2

假设我目前不知道test2用户的密码,又想以test2登录数据库,就可以使用test1以代理用户方式登录数据库:

SQL>conn test1[test2]/test1       使用代理用户test1登录数据库

Connected.

SQL>show user

USER is "TEST2"

SQL>desc t2

 Name                                     Null?   Type

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

 NUM                                               NUMBER

SQL>insert into t2 values(1);

1 row created.

SQL>commit;

Commit complete.

SQL>select * from t2;

      NUM

----------

        1

另外,这里即使代理用户test1被锁定,仍然可以代理登录:

SQL>conn / as sysdba

Connected.

SQL>alter user test1 account lock;

User altered.

SQL>conn test1[test2]/test1

Connected.

SQL>select * from t2;

      NUM

----------

        1

不过如果原用户test2被锁定,那么登录会报失败:

SQL>conn / as sysdba

Connected.

SQL>alter user test2 account lock;

User altered.

SQL>conn test1[test2]/test1

ERROR:

ORA-28000: the account is locked

Warning: You are no longer connected to ORACLE.

11.2版本前(除了10.2.0.5),这是个期望行为,因为当使用代理用户登录数据库时,Oracle只关心2点:

(1)      被代理用户是否有连接数据库的权限

(2)      代理用户的用户名和密码是否匹配

除此之外,Oracle是不会关心代理用户是否有CONNECT权限,是否被锁定等方面问题。

11.2.0.110.2.0.5中修复了BUG6900761,使锁定的代理用户不能被使用,但如果用户只是过期,仍然可以被当做代理用户使用。而使用bug 9898461补丁可以使锁定用户和过期用户都不能作为代理用户使用。