【问题标题】:Check if Windows credentials have sysadmin privileges for each SQL Server in list检查 Windows 凭据是否对列表中的每个 SQL Server 具有系统管理员权限
【发布时间】:2019-09-09 20:42:58
【问题描述】:

我需要编写一个脚本 [在任何情况下,假定 powershell 最好] 来检查给定的 Windows 或 SQL Server 凭据是否具有列表中每个服务器的系统管理员权限。我想在我的环境中遍历列表 pf SQL Servers 并生成一个日志,告诉我哪些服务器我有系统管理员权限。

【问题讨论】:

  • SO 不是脚本编写服务,您已经尝试过什么?
  • 除了问题之外,您还应该包括到目前为止您所拥有的代码努力回答您的问题/问题,因为Stack Overflow 不是代码编写服务)。在doing more research 之后,如果您有问题,您可以发布您尝试过的内容,并清楚地解释什么不起作用,并提供一个minimal reproducible example 。我建议阅读How do I ask a Good QuestionWriting the Perfect Question。另外,请务必使用tour
  • 请举例说明您的尝试以及您需要帮助的地方。 How to ask 只要您付出努力,SO 上的大多数成员都会为您提供帮助。
  • @techguy1029 我还没有开始,我需要更多的高层指导。我的问题是我需要自动检查 sql 服务器列表的系统管理员权限

标签: sql-server powershell sysadmin


【解决方案1】:

你要找的是IS_SRVROLEMEMBER.

IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )  

参数

'角色' 是正在检查的服务器角色的名称。角色是系统名。

角色的有效值是用户定义的服务器角色,以及以下固定的服务器角色:

系统管理员服务器管理员 dbcreator setupadmin 批量管理员安全管理员 磁盘管理员

'登录' 是要检查的 SQL Server 登录名。 login 是 sysname,默认为 NULL。如果未指定任何值,则结果基于当前执行上下文。如果参数中包含NULL字样会返回NULL。

|返回值 |说明 |

0 登录不是角色成员。

1 个登录是角色的成员

NULL 角色或登录无效,或者您没有查看角色成员资格的权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多