第十二周学习笔记(数据库安全体系的知识点(思维导图)、说明、示例)

一.思维导图

二.说明

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登录名


IF SUSER_ID('LocalComputerName\WinUser1') IS NOT NULL       
 DROP LOGIN [LocalComputerName\WinUser1];      
GO       
CREATE LOGIN [LocalComputerName\WinUser1]       
 FROM WINDOWS       
 WITH      
  DEFAULT_DATABASE=master;

2.创建SQL Server登录名

 IF SUSER_ID('SqlLogin1') IS NOT NULL     
 DROP LOGIN SqlLogin1;    
GO     
CREATE LOGIN SqlLogin1      
 WITH     
   PASSWORD='2wsx@WSX'    
  ,CHECK_POLICY=ON   
  ,DEFAULT_DATABASE=master;

3.将SqlLogin1添加至sysadmin角色


EXEC sp_addsrvrolemember 'SqlLogin1', 'sysadmin';

4.将SqlLogin1从sysadmin角色移除

EXEC sp_dropsrvrolemember 'SqlLogin1', 'sysadmin';

5.在数据库HIS中创建用户DbUser1 ,并映射至登录名SqlLogin1



            IF USER_ID('DbUser1') IS NOT NULL   DROP USER DbUser1;   GO           CREATE USER DbUser1      FOR LOGIN SqlLogin1;      

6.将查询病人表的权限授予DbUser1用户


   
  GRANT       SELECT       ON tb_Patient     TO DbUser1;

     

7.收回DbUser1用户对病人表的查询权限

REVOKE       SELECT       ON tb_Patient


  FROM DbUser1;

8.创建数据库角色DbRole1,将用户DbUser1添加至该角色

  IF USER_ID('DbRole1') IS NOT NULL     DROP ROLE DbRole1;     GO               CREATE ROLE DbRole1;     GO               EXEC sys.sp_addrolemember 'DbRole1','DbUser1';

9.创建非对称密钥

    USE HIS;           IF ASYMKEY_ID('ak_HIS_ForSymKeyCrypto') IS NOT NULL   DROP ASYMMETRIC KEY ak_HIS_ForSymKeyCrypto; GO               CREATE ASYMMETRIC KEY ak_HIS_ForSymKeyCrypto   WITH                ALGORITHM=RSA_512  
          ENCRYPTION BY PASSWORD='2wsx@WSX';

10.创建对称密钥

IF KEY_ID('sk_HIS_ForDataCrypto') IS NOT NULL         DROP SYMMETRIC KEY sk_HIS_ForDataCrypto;     GO                     CREATE SYMMETRIC KEY sk_HIS_ForDataCrypto         WITH                      ALGORITHM=TRIPLE_DES               ENCRYPTION BY ASYMMETRIC KEY ak_HIS_ForSymKeyCrypto;

 




猜你喜欢

转载自blog.csdn.net/MonGo17/article/details/80463274