我有一个在“本地系统”帐户下运行的SQL Express 2008 R2实例。我编写了一个Windows服务,该服务也可以在“本地系统”帐户下运行。 Windows服务使用以下连接字符串连接到sql服务器。
Data Source=.\sqlexpress;Initial Catalog=mydatabase;Integrated Security=True
安装该应用程序后,我使用一个简单的SQL脚本创建了数据库,该脚本未设置任何权限或角色...它只是创建了数据库和表。
我的Windows服务如何以“本地系统”运行来访问数据库?它在SQL数据库中获得什么权利?如何获得这些权利?
安德鲁
如果将SSMS中左侧的树(对象资源管理器)展开为“安全性”,然后单击“登录”,则会看到“ NT AUTHORITY \ SYSTEM”。默认情况下,在安装SQL Server 2008 R2 Express后进行配置,此帐户将添加到sysadmin
角色。
FYI-您的服务以Local System
+集成安全性运行,意味着它正在使用SQL Server作为Windows帐户NT AUTHORITY\SYSTEM
进行身份验证。
http://msdn.microsoft.com/en-us/library/ms188659.aspx
sysadminsysadmin固定服务器角色的成员可以在服务器中执行任何活动。
授予本地系统帐户的某些权限由其分配的角色确定。
如果您通过Microsoft SQL Server Management Studio登录,请展开Security文件夹,右键单击NT AUTHORITY \ SYSTEM,然后选择Properties,您应该能够在Server Roles中看到分配给Local System用户的角色部分。
您可以在Microsoft的Server-Level Roles文档中了解有关每个角色的更多信息。
希望这会有所帮助!