23
2023
11
23:18:33

将权限赋予 SQL Server 虚拟帐户(NT Service\SQLSERVERAgent 等)是否可行?



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

在 Microsoft Windows Server 2008 中使用 MS SQL Server 2012。

对 Windows 7 和 Windows Server 2008 R2虚拟 Windows 帐户([NT SERVICE]\<SERVICENAME>如 NT SERVICE\MSSQLSERVERNT SERVICE\SQLSERVERAGENT等)可用新帐户类型感到有些困惑。

例如,是否敢于向 [NT Service\SQLSERVERAGENT]' 授予访问共享资源(或本地文件或目录)的权限?
而且,如何做到这一点?
例如,要将权限赋予 Windows 文件共享以运行psexec

在浏览(或按下按钮 Find< 或将组和用户添加到文件共享)时,域和/或本地/远程计算机中可用的帐户,没有可用的帐户,手动输入会出现错误:

“无法找到具有以下内容的对象(用户或内置安全主体)...”




在此处输入图片说明


引发此问题的相关(尽管不同)问题:如何将 bak 文件复制到远程共享(不涉及 AD/域帐户)?

更新,回答@Jon-Siegel 对我删除的答案的评论: 我的屏幕截图中没有错误,有时会检测到虚拟帐户,有时会失败。真的是过去 2 天我无法重现它。

可以解释一下我没有适当的权限吗?
当我尝试打开 SQL Sever 配置管理器时,我总是得到:

--------------------------- SQL Server Configuration Manager --------------------------- Cannot connect to WMI provider.   
You do not have permission or the server is unreachable.  
Note that you can only manage SQL Server 2005 and later servers with SQL Server Configuration Manager.  
Invalid class [0x80041010] 
 --------------------------- OK   
---------------------------
Run Code Online (Sandbox Code Playgroud)

SQL Server 配置管理器错误

此外,在eventvwr.msc我观察到很多与权限相关的错误(在系统下):

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID   
{FDC3723D-1588-4BA3-92D4-42C430735D7D}  
 and APPID   
{83B33982-693D-4824-B42E-7196AE61BB05}  
 to the user NT SERVICE\SQLSERVERAGENT SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430) from address LocalHost (Using LRPC).  
This security permission can be modified using the Component Services administrative tool
Run Code Online (Sandbox Code Playgroud)

.

在此处输入图片说明

我不确定我是应该打开另一个问题还是坚持这个问题……后续问题是:
1) 读取虚拟帐户的权限是什么?

我无法在“选择用户、计算机、服务帐户、Cgoups 或内置安全主体”中列出除本地计算机之外的任何内容 - 这些条目是可见的,但在打开它们时,我看不到一个子条目:

在此处输入图片说明

2)
如何NT SERVICE\SQLSERVERAGENT在另一台计算机上输入(通过手动输入)?

目前我只能在本地计算机上选择它:

  • 通过按“位置... ”按钮选择本地计算机的名称,然后选择树列表中的顶部条目 - 参见上面的截图;

  • 然后在“ Enter the object names to select”列表框中键入“NT Service\SQLSERVERAGENT”

    检查名称 - 之前

    这是在按下“检查名称”按钮之后:

    在此处输入图片说明

也就是说,没有提示如何键入它。
按“高级...”按钮,然后按“立即查找”)显示一个列表,其中虚拟帐户不存在:

在此处输入图片说明


ste*_*ary  4


因此,首先快速浏览一下虚拟帐户的解释:

TechNet:服务帐户分步指南

回答您的问题:

1/ 你不能在该对话框中列出这些虚拟帐户,我不能 100% 确定原因,但你总是需要手动输入它们,在你的屏幕截图中你还列出了活动目录域,你会永远不会在这里看到他们,因为他们是本地帐户。

2/ 您无法通过查找这些帐户来添加对另一台计算机上的文件/共享的权限,因为它们仅存在于您安装 SQL Server 的计算机上(在您的情况下为 NVOSIB-1C)。这些帐户虽然可以访问网络上的资源,但它们是在服务器的计算机帐户的上下文中进行的。

因此,一个示例是您安装了 SQL Server 的 NVOSIB-1C 和具有您希望 SQL Server 帐户能够访问的共享的 NVOSIB-Filer。

在这种情况下,您要做的是将 SQL Server 的计算机帐户添加到文件共享的权限中,只需为帐户 DOMAINNAME\NVOSIB-1C$ 分配所需的权限,然后将其作为虚拟帐户即可完成此操作在其所在机器的上下文中访问网络,它将获得这样做的权限。

显然,这在一定程度上限制了您分配权限的能力,因为在服务器上下文中经过身份验证的 NVOSIB-1C 上运行的任何内容现在都可以访问共享,如果这是一个问题,您可以执行以下两件事之一:

  • 对 SQL Server 服务使用标准域服务帐户,然后您需要维护这些帐户的密码等,但这使分配权限变得更加容易。

  • 在 AD 中设置托管服务帐户,这具有本地帐户的优点,即您无需担心密码,还有您可以像普通帐户一样在 AD 中集中查看和管理它们的优点,主要缺点是您需要在安装 SQL Server 之前创建托管服务帐户,因此在您的情况下,您必须重新安装才能利用这一点。



    Anu*_*hah  0


    它们是服务帐户,不能用作用户帐户。我不想解释这一切,而是希望您阅读 Rick 的精彩博客。请参阅下面的链接。

    服务/数据库帐户

    让我重新启动关于 SQL Server 虚拟帐户权限的问题

    在“与异常磁盘位置相关的文件系统权限”部分中,关于 SQL Server 2012 版“配置 Windows 服务帐户和权限”的(相同)MSDN 文章指出:

    虚拟帐户无法远程验证。所有虚拟帐户都使用机器帐户的权限。按格式设置机器帐户<domain_name>\<computer_name>$。”

    如果“虚拟帐户无法在远程位置进行身份验证”,那么为什么:

    • 使用机器帐户的权限和

    • 在域帐户的格式?

    同一篇文章“Windows 7 和 Windows Server 2008 R2 可用的新帐户类型”部分包含:

    "虚拟账户

    Windows Server 2008 R2 和 Windows 7 中的虚拟帐户是托管本地帐户,提供以下功能以简化服务管理。虚拟账户是自动管理的,虚拟账户可以在域环境下访问网络。如果在 Windows 上的 SQL Server 设置过程中对服务帐户使用默认值,则使用Server 2008 R2使用Windows 7实例名称作为服务名称的虚拟帐户,格式为NT SERVICE\<SERVICENAME>. 作为虚拟帐户运行的服务通过使用格式为“的计算机帐户的凭据来访问网络资源<domain_name>\<computer_name>$

    我应该如何更好地理解在没有身份验证的情况下访问网络?


    本文链接:http://www.hqyman.cn/post/4595.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

    分享到:





    休息一下,本站随机推荐观看栏目:


    « 上一篇 下一篇 »

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    您的IP地址是: