【问题标题】:Is there a T-SQL function to return the name of the 'sa' account?是否有返回“sa”帐户名称的 T-SQL 函数?
【发布时间】:2012-02-04 05:59:45
【问题描述】:

(我知道这个问题听起来很荒谬,但请耐心等待......)

出于自身安全目的,我们的 DBA 将“sa”帐户名称更改为其他名称。有业务需要在脚本中使用帐户名(例如 sp_add_job),但在这种情况下会中断。我希望能够提交一个不需要编辑的脚本,以便在运行前使用新的“sa”用户名。

是否有类似于@@SERVERNAME 的函数/属性将返回此帐户的名称?

【问题讨论】:

  • 他们更改了 SA 帐户名称,但没有更改密码?
  • @Mike Mooney:不,我认为他们也更改了密码。
  • 那么您是否正在寻找返回 SA 用户名和 SA 密码的内容?那么几乎可以肯定不是。如果您能够运行脚本来检索 SA 密码,那将是一个巨大的安全漏洞。
  • @Mike Mooney:不,只是帐户名。
  • 只需创建一个具有所需权限的其他用户并使用它。 sa 是神,不应该用于日常事务。

标签: sql-server-2008 tsql sa


【解决方案1】:

没有返回新 SA 名称的函数,但由于 SA 的 UID = 0x01,它可以从登录表中检索。这适用于 SQL 2000 及更高版本。

select name from master..syslogins where sid = 1

【讨论】:

    【解决方案2】:

    您是否尝试过使用:

    SELECT SUSER_NAME()
    

    【讨论】:

    • 不,这对于 sa 是否始终为“1”?即“选择 SUSER_NAME(1)”?因为这确实对我有用。
    猜你喜欢
    • 2013-10-14
    • 2014-10-12
    • 2019-03-16
    • 1970-01-01
    • 2012-02-07
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多