Oracle代理用户(Proxy User)

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补丁可以使锁定用户和过期用户都不能作为代理用户使用。

转载于:https://www.cnblogs.com/rootq/archive/2012/09/03/2668226.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue代理服务器proxy是一个非常有用的功能,它可以用于将前端请求转发到后端接口,解决跨域问题。 首先,在Vue项目的根目录中找到vue.config.js文件,如果没有则手动创建一个。在vue.config.js文件中,我们可以通过配置proxy选项来设置代理服务器。 具体的proxy配置如下: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:8080', // 这里配置你想要请求的后端接口地址,可以是本地地址也可以是远程地址 changeOrigin: true, // 是否跨域 pathRewrite: { '^/api': '' // 将路径中的'/api'替换为空字符串 } } } } } ``` 以上代码表示将以'/api'开头的请求转发到target指定的后端地址。例如,前端请求/api/user会被转发到http://localhost:8080/user。 除了target之外,proxy还支持其他一些配置选项,比如changeOrigin和pathRewrite。 changeOrigin用于控制请求头中的host字段,如果设置为true,则请求头中的host字段会被设置为target的hostname;反之,请求头中的host字段保持不变。 pathRewrite用于重写请求路径,比如上述代码中的'^/api': ''表示将请求路径中的'/api'替换为空字符串。这样一来,前端请求/api/user经过代理服务器后,会被重写为/user发送给后端。 综上所述,Vue代理服务器proxy配置非常简单,只要按照上述格式在vue.config.js文件中进行配置即可。这样一来,前端就可以轻松地与后端进行交互,解决跨域问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值