一.思维导图
二.说明
1.服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。
2.数据库级别所包含的安全对象主要有用户、角色、对称密钥、非对称密钥、架构等。用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。
3.GRANT 在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 SQL 语句;REVOKE 删除以前在当前数据库内的用户上授予或拒绝的权限;DENY拒绝授予权限。
4.创建非对称密钥和对称密钥时,可以用ALGORITHM选择加密的算法;设置用户密码时可以用HASHBYTES进行散列处理。
三.示例
1.创建Windows登录名
DROP LOGIN [LocalComputerName\WinUser1];
GO
CREATE LOGIN [LocalComputerName\WinUser1]
FROM WINDOWS
WITH
DEFAULT_DATABASE=master;
2.创建SQL Server登录名
DROP LOGIN SqlLogin1;
GO
CREATE LOGIN SqlLogin1
WITH
PASSWORD='2wsx@WSX'
,CHECK_POLICY=ON
,DEFAULT_DATABASE=master;
3.将SqlLogin1添加至sysadmin角色
4.将SqlLogin1从sysadmin角色移除
EXEC sp_dropsrvrolemember 'SqlLogin1', 'sysadmin';
5.在数据库HIS中创建用户DbUser1 ,并映射至登录名SqlLogin1
IF USER_ID('DbUser1') IS NOT NULL