2014-10-01 48 views
2

的同时转换一个Oracle代码块,我发现这一点:SQL服务器相当于Oracle用户

IF :NEW.username != USER THEN 

现在,我的问题 - 究竟是Oracle USER?在SQL Server中,我有:

SELECT name FROM sys.server_principals 

这里的'名称'是否与Oracle USER相同?

+0

'oracle'中的USER'是用户当前连接的 – Aramillo 2014-10-01 12:17:03

回答

0

SQL Server中,NAMEsys.database_principalsUSER。 dbastackexchange中有类似的问题https://dba.stackexchange.com/questions/22803/listing-the-existing-sql-server-logins-and-users

在Oracle中,USER是一个帐户,您可以通过该帐户登录到数据库并确定Oracle数据库允许用户访问的方式。

例如,我连接到示例模式 “SCOTT”,我连接如:

conn scott/[email protected]

所以,这里的用户是 “SCOTT”。让我们来看看:

SQL> show user; 
USER is "SCOTT" 
+0

感谢此。所以,在这种情况下,我认为Oracle'USER''等价于SQL SERVER'SUSER_SNAME()'。请评论你是否认为我不正确。 – user3844877 2014-10-01 12:32:40

+0

否。它返回登录名称,而用户名和登录名在SQL Server中不相似。一个“登录”可以与许多用户相关联(每个数据库一个)。看看类似的问题http://stackoverflow.com/questions/1134319/difference-between-a-user-and-a-login-in-sql-server – 2014-10-01 12:41:33