使用非SA账户连接MSSQL数据库(mssql不用sa做连接)
Windows Services 通常使用具有管理员权限账户(commonly known as a SA account)连接到SQL Server数据库和系统。但有时,我们不得不使用普通用户(非SA账户)连接到MSSQL数据库,以实现更好的权限控制,而不是给予系统和数据的完整访问。
使用非SA账号连接MSSQL首先需要打开以下SQL Server实例服务属性,允许SQL Server实例使用登录名称和密码登录并对受控访问的用户名称和密码进行认证:
以管理员身份登录到SQL Server,并使用如下所示的T-SQL语句打开MSSQL服务属性:
USE [master]
GO
EXEC xp_instance_regwrite
N’HKEY_LOCAL_MACHINE’,
N’Software\Microsoft\MSSQLServer\MSSQLServer’,
N’LoginMode’,
REG_DWORD,
2
GO
打开上述服务属性后,我们需要建立新的非SA账号来访问SQL Server。在SQL Server中执行以下语句,使用CREATE LOGIN命令创建新的登录账号:
CREATE LOGIN UserTest WITH PASSWORD = ‘Eazy#42$$2018’ , CHECK_POLICY = OFF ;
GO
在创建登录后,我们将创建一个新的用户来访问选定的数据库,方法如下:
USE [CustomDB]
GO
CREATE USER UserTest FOR LOGIN UserTest
GO
不仅需要创建登录和用户,还需要配置访问控制,以保护敏感数据免受篡改和访问。对某些数据库和表,我们可以使用以下T-SQL语句给新创建的用户设置权限。
USE [CustomDB]
GO
GRANT SELECT,INSERT,UPDATE,DELETE ON SCHEMA::dbo TO UserTest;
GO
只要按照上述步骤创建新的登录和用户,指定他们的访问权限,就可以从SQL Server实例使用非SA账户进行访问。如果我们有多台服务器要连接,则可以通过在主机机器上添加相同的登录和用户以及指定的访问权限来实现非SA账户具有相同的访问权限,无论是从主机连接SQL Server实例还是从其他子机连接SQL Server实例。
因此,通过以上步骤,可以使用非SA账户连接MSSQL数据库,实现更好的权限控制和可管理性。