1. MSSQL身份认证机制简介
MSSQL服务器上使用的身份验证机制可以帮助管理员控制用户能够访问哪些数据库,并确定他们在数据库中的权限。MSSQL身份认证机制分为两种:Windows身份认证和SQL Server身份认证。
Windows身份验证是指MSSQL使用Windows操作系统的安全性来创建与管理数据库用户。万维网上建立了一个Windows安全系统,建立了用户和组的层次结构,允许管理员创建具有特定操作权限的用户,从而使用户能够访问其管理的文件或数据库。
SQL Server身份验证是指通过使用一组用户名和密码来识别MSSQL服务器上的数据库用户。该方法在没有单独维护用于管理MSSQL服务器访问权限的Windows用户帐户的情况下,允许将MSSQL服务器的访问权限控制权授予其他用户。这种身份验证机制的优点是更简单的安全管理。
2. Windows身份验证机制的实现
2.1 建立Windows用户账户
管理员建立Windows用户帐户时,可以指定该帐户的登录名和密码。这些帐户与访问计算机的物理用户帐户是相同的。
在创建Windows用户帐户时,可以选择将该帐户分配给Windows用户组。例如,将帐户分配给管理员组可以给用户全权管理计算机的权限。
2.2 建立SQL Server登录名
建立Windows用户帐户之后,管理员可以利用MSSQL Server Management Studio创建一个SQL Server登录名,并将该登录名与Windows用户帐户相关联。其中,登录名是MSSQL数据库上的身份,可以用来授权数据库用户对特定数据库对象进行操作。这意味着管理员可以授予用户访问数据库的权限。
CREATE LOGIN [<login name>] FROM WINDOWS;
在上面的SQL脚本中,用<login name>代替要创建的登录名。FROM WINDOWS语句告诉MSSQL使用Windows用户帐户的用户名作为登录名。
对于授权用户访问特定数据库的操作,管理员需要将该SQL Server登录名与特定数据库中的用户帐户相关联,并为其分配相应的权限。
3. SQL Server身份验证机制的实现
3.1 建立SQL Server登录名
管理员可以在MSSQL Server Management Studio中建立SQL Server登录名。使用此方法时,登录名和密码是存储在MSSQL数据库中的。
CREATE LOGIN [<login name>] WITH PASSWORD='[<password>]';
在上述SQL脚本中,用<login name>替换要创建的登录名,用<password>替换要为登录名创建的密码。
3.2 建立数据库用户帐户
建立SQL Server登录名之后,需要为登录名建立数据库用户帐户。数据库用户帐户专为某个特定数据库而设计,如果管理员要在多个数据库中授予用户访问权限,则需要为每个数据库分别创建一个数据库用户帐户。
USE [<database name>];
CREATE USER [<user name>] FOR LOGIN [<login name>];
在上述代码中,用<database name>替换要创建数据库的名称,用<login name>替换SQL Server登录名,用<user name>替换要创建的数据库用户帐户的名称。
管理员可以通过授予多种操作权限来限制数据库用户帐户的访问权限。例如,可以授予他们选择、插入、更新和删除数据等操作,同时也可以禁止或限制某些操作。
4. 总结
MSSQL身份认证机制提供了两种不同的方法来管理数据库用户的权限,Windows身份验证和SQL Server身份验证。Windows身份验证基于Windows操作系统的安全性建立用户和组的层次结构,使管理员能够创建具有特定操作权限的用户,并控制其对数据库的访问权限。SQL Server身份验证则通过使用一组用户名和密码识别数据库用户。无论使用哪种方法,建立MSSQL服务器登录名和数据库用户帐户是实现的关键,管理员必须根据要求建立合适的安全策略来为用户分配权限。