• MS SQL高级——数据库安全


    数据库安全

    数据库安全

    数据库的安全机制

    《登录验证方式》有两种

    • SQLServer身份验证:适合于非windows平台的用户或Internet用户,需要提供帐户和密码。
    • Windows身份验证:适合于windows平台用户,不需要提供密码,和windows集成验证。

    《登录帐户类型》有两种

    • SQLServer 帐户
    • Windows帐户

    添加登录账户

    添加Windows登录帐户(了解)

    1 USE master
    2 GO
    3 EXEC sp_grantlogin 'PC-20020101LAWH\TeacherZheng'
    View Code

    注意问题

    • 创建登录账号一定要在master数据库中。
    • 存储过程的参数:“域名\用户名”或者“计算机名\用户名”

     添加SQLServer登录帐户(重点)

    1 USE master
    2 GO
    3 EXEC sp_addlogin 'xiaoliu', '1234'
    View Code

    创建数据库用户

    创建数据库用户的方法

    1 USE StudentManageDB
    2 GO
    3 EXEC sp_grantdbaccess
    4     'PC-20020101LAWHITeacherWang', 'wangUser01'
    5 
    6 EXEC sp_grantdbaccess
    7     'xiaoliu', 'xiaoliuUser02'
    View Code

    注意问题

    • 创建数据库用户一定要在当前的数据库中。
    • 存储过程的参数:登录账户名,数据库用户名。

    系统内置的数据库用户

    dbo用户

    • 表示数据库的所有者(DB Owner)。
    • 无法删除dbo用户,此用户始终出现在每个数据库中。
    • 默认分配给sa登录账号。

    guest用户

    • 适用于没有数据库用户的登录帐号访问。
    • 每个数据库可有也可删除。

     登录账号和用户删除

    向数据库用户授权

    授权的语法

    grant 权限 [on表名]  to 数据库用户

    收回权限的语法

    revoke 权限 [on表名] to 数据库用户

    代码编写分析

    用户角色管理

    问题引出

    • 给单个数据库用户授权非常麻烦,能否创建一个数据库用户,然后直接赋予它一组已经定义好权限?

    解决

    • 定义一个角色,然后给该角色设置权限,再将该角色赋予特定用户。
    • 使用已定义好的角色(固定角色),直接赋予特定的数据库用户即可。

    固定角色

    角色名称 角色描述
    db_owner 数据库的拥有者。可对数据库和其对象进行所有管理工作。此角色的权限可以包括以下其他角色的权限
    db_accessadmin 可以新建和删除windows用户组、windows用户和数据库用户
    db_datareader 看看到数据库中所有用户创建的表内的数据
    db_datawriter 可以新建、修改、删除数据库中的所有用户创建的表内数据
    db_ddladmin 可以新建、修改、删除数据库中的对象
    db_securityadmin 可管理数据库内的权限控制,如管理数据库的角色和角色内的成员、管理数据库对象的访
    db_backupoperator 具有备份数据库的权限
    db_denydatareader 可以拒绝选择数据库中的数据
    db_denydatawr iter 可以拒绝更改数据库中的数据

    赋予数据库用户固定角色

    exec sp_addrolemember‘数据库角色名称’,‘数据库用户名’

    删除角色成员

    exec sp_droprolemember‘数据库角色名称’,‘数据库用户名’

    END

  • 相关阅读:
    Mybatis 使用Mybatis时实体类属性名和表中的字段名不一致
    getResourceAsStream 地址
    Memory Allocation with COBOL
    静态call 动态call LINK
    反编译
    eclipse 设置英文
    WAR/EAR 概念
    application.xml
    对ContentProvider中getType方法的一点理解
    总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等
  • 原文地址:https://www.cnblogs.com/zeon/p/16323932.html
Copyright © 2020-2023  润新知