1. 概述
对于MSSQL用户设置,它的目的是通过对用户的权限、角色等设置,来保证数据的安全性、完整性和可靠性。本文将结合实例,介绍如何对MSSQL中的用户进行设置。
2. 创建新用户
2.1 创建新用户语法
我们创建一个新用户testuser
,用户名为testuser
,密码为12345
:
CREATE LOGIN testuser WITH PASSWORD = '12345';
2.2 创建新用户实例
为了演示创建新用户的实例,我们可以创建一个新的数据库testdb
,然后创建一个仅对该数据库有读取和写入权限的testuser
用户。
USE master;
CREATE DATABASE testdb;
GO
USE testdb;
CREATE LOGIN testuser WITH PASSWORD = '12345';
CREATE USER testuser FOR LOGIN testuser;
GO
EXEC sp_addrolemember 'db_datareader', 'testuser';
EXEC sp_addrolemember 'db_datawriter', 'testuser';
执行后,我们可以使用testuser
登录testdb
数据库,它只拥有数据读取和写入的权限。
3. 用户权限设置
3.1 用户权限查询
我们可以通过查询sys.database_principals
元数据信息表来获取指定用户的权限信息,例如查询testuser
的权限信息:
USE testdb;
SELECT * FROM sys.database_principals WHERE name = 'testuser';
查询结果会显示这个用户所拥有的权限信息。
3.2 用户权限设置实例
我们可以通过GRANT
和DENY
语句来设置用户的权限。例如,我们可以为testuser
添加只读权限:
USE testdb;
GRANT SELECT ON SCHEMA::dbo TO testuser;
执行后,testuser
只有读取数据库的权限。
4. 用户角色设置
4.1 用户角色查询
我们可以通过查询sys.database_role_members
元数据表来获取指定用户所属的角色信息,例如查询testuser
所属的角色信息:
USE testdb;
SELECT * FROM sys.database_role_members WHERE member_principal_id = USER_ID('testuser');
查询结果会显示这个用户所在的角色信息。
4.2 用户角色设置实例
我们可以通过sp_addrolemember
和sp_droprolemember
存储过程来设置用户的角色,例如为testuser
添加数据管理员(db_datawriter
)角色:
USE testdb;
EXEC sp_addrolemember 'db_datawriter', 'testuser';
执行后,testuser
会拥有数据库中的数据读取、写入、更新和删除的权限。
5. 用户登录控制
5.1 用户登录控制实例
我们可以限制一个用户只能从特定的IP地址登陆,只需使用CREATE LOGIN
中的WITH CHECK_POLICY = OFF
参数,然后通过sp_addsrvrolemember
存储过程将登录控制的角色赋给这个用户。例如,我们可以限制testuser
只能从IP地址为192.168.1.100
的计算机上登陆:
USE master;
CREATE LOGIN testuser WITH PASSWORD = '12345', CHECK_POLICY = OFF;
EXEC master..sp_addsrvrolemember @loginame = N'testuser', @rolename = N'loginmanager'
GO
USE testdb;
CREATE USER testuser FOR LOGIN testuser;
GO
EXEC sp_addrolemember 'db_datareader', 'testuser';
EXEC sp_addrolemember 'db_datawriter', 'testuser';
执行后,testuser
只能从IP地址为192.168.1.100
的计算机上登陆。
6. 总结
MSSQL用户设置的目的是确保数据的安全性、完整性和可靠性。文章介绍了如何创建新用户、设置用户的权限和角色、以及限制用户的登录。以上实例演示了如何将这些内容应用到实际情况中。