Visual Basic App 以计算机用户身份连接到 SQL 服务器
Visual Basic App Connect to SQL Server as Computer User
我在 VB 中制作了一个简单的 CRUD 应用程序,数据存储在我本地计算机上的 SQL 服务器中。
在数据库安全中,我创建了数据库角色并相应地分配了权限,并将我的(域)计算机用户帐户添加到角色中。
我的连接字符串是;
Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=Assets;Integrated Security=SSPI
现在,当我 运行 我的应用程序时,它承担了 dbo 角色,而不是 运行 应用程序的用户。由于这是为了在中央计算机上 运行 并且有多个用户连接到它,具有不同的权限,我需要进行哪些更改才能使用我的域用户帐户进行连接?
当我 运行 在 SSMS 中使用 EXECUTE AS USER 命令执行命令时,权限适用。
如果您希望用户通过他们的 Windows 登录名进行连接,您的连接字符串就可以了。但是,您需要重新配置您的安全模型。理想情况下,您会希望为每个应用程序角色创建一个 Active Directory 组。然后,您将用户的 Windows 帐户添加到适当的 AD 组。现在,在 SQL 服务器上,您将 AD 组添加到适当的数据库角色。
例如,您创建了一个数据库角色“db_read_only”。您当然会使用您公司的 AD 组命名约定创建一个 AD 组“MyApp.ReadOnly”。然后将 MyApp.ReadOnly 添加到数据库的 db_read_only DB 角色。然后,John Doe 想要对您的应用程序进行只读访问,因此他请求添加到 AD 组 MyApp.ReadOnly。
您的应用角色定义了您需要多少个 AD 组和数据库角色。您可能有 MyApp.Admin、MyApp.DataEntry、MyApp.Approver...等等。
我在 VB 中制作了一个简单的 CRUD 应用程序,数据存储在我本地计算机上的 SQL 服务器中。
在数据库安全中,我创建了数据库角色并相应地分配了权限,并将我的(域)计算机用户帐户添加到角色中。
我的连接字符串是;
Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=Assets;Integrated Security=SSPI
现在,当我 运行 我的应用程序时,它承担了 dbo 角色,而不是 运行 应用程序的用户。由于这是为了在中央计算机上 运行 并且有多个用户连接到它,具有不同的权限,我需要进行哪些更改才能使用我的域用户帐户进行连接?
当我 运行 在 SSMS 中使用 EXECUTE AS USER 命令执行命令时,权限适用。
如果您希望用户通过他们的 Windows 登录名进行连接,您的连接字符串就可以了。但是,您需要重新配置您的安全模型。理想情况下,您会希望为每个应用程序角色创建一个 Active Directory 组。然后,您将用户的 Windows 帐户添加到适当的 AD 组。现在,在 SQL 服务器上,您将 AD 组添加到适当的数据库角色。
例如,您创建了一个数据库角色“db_read_only”。您当然会使用您公司的 AD 组命名约定创建一个 AD 组“MyApp.ReadOnly”。然后将 MyApp.ReadOnly 添加到数据库的 db_read_only DB 角色。然后,John Doe 想要对您的应用程序进行只读访问,因此他请求添加到 AD 组 MyApp.ReadOnly。
您的应用角色定义了您需要多少个 AD 组和数据库角色。您可能有 MyApp.Admin、MyApp.DataEntry、MyApp.Approver...等等。