1 / 27

安全性

安全性. 本章学习目标. 了解 SQL Server 2005 登录验证模式 掌握管理两类 SQL Server 2005 登录帐户的方法 掌握管理 SQL Server 2005 数据库用户的方法 了解基于角色的权限管理 掌握管理服务器角色的方法 掌握管理数据库角色的方法 掌握管理权限的方法. 概述. 第一个安全性问题 :当用户登录数据库系统时,如何确保只有合法的用户才能登录到系统中呢?这是一个最基本的安全性问题,也是数据库管理系统提供的基本功能。在 Microsoft SQL Server 2005 系统中,这个问题是通过身份验证模式和主体解决的。

iris-park
Download Presentation

安全性

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 安全性

  2. 本章学习目标 • 了解SQL Server 2005登录验证模式 • 掌握管理两类SQL Server 2005登录帐户的方法 • 掌握管理SQL Server 2005数据库用户的方法 • 了解基于角色的权限管理 • 掌握管理服务器角色的方法 • 掌握管理数据库角色的方法 • 掌握管理权限的方法

  3. 概述 • 第一个安全性问题:当用户登录数据库系统时,如何确保只有合法的用户才能登录到系统中呢?这是一个最基本的安全性问题,也是数据库管理系统提供的基本功能。在Microsoft SQL Server 2005系统中,这个问题是通过身份验证模式和主体解决的。 • 第二个安全性问题:当用户登录到系统中,他可以执行哪些操作、使用哪些对象和资源呢?这也是一个非常基本的安全问题,在Microsoft SQL Server 2005系统中,这个问题是通过安全对象和权限设置来实现的。 • 第三个安全性问题:数据库中的对象由谁所有?

  4. 安全性管理 • 基于SQL Server 2005本身实现的安全方案

  5. (1)windows 系统安全 • (2)sql server服务器 • (3)sql server数据库 • (4)数据库对象

  6. SQL Server服务器的安全体系 • 网络安全 • Windows操作系统安全 • SQL Server服务器安全 • 数据库安全 • 数据对象安全 • 物理存储介质安全

  7. SQL Server 2005登录身份验证模式 • “Windows身份验证模式” • “SQL Server和Windows身份验证模式”。

  8. 登陆帐户 • 登陆名 • CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> } • <sources> ::= WINDOWS [ WITH <windows_options> [ ,... ] ] • <option_list1> ::= PASSWORD = 'password' [ HASHED ] [ MUST_CHANGE ] [ , <option_list2> [ ,... ] ] • <option_list2> ::= DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} • <windows_options> ::=DEFAULT_DATABASE = database|DEFAULT_LANGUAGE = language

  9. 例一 • create login te_login • with password=N'123456', • default_database=student, • default_language=简体中文, • CHECK_EXPIRATION=OFF, • CHECK_POLICY=OFF

  10. -- • create login [hxh\123] from windows • -- • EXEC SP_ADDLOGIN 'ABC','123456'

  11. 服务器角色 • 系统管理员(sysadmin):可以在数据库引擎中执行任何活动。默认情况下,Windows BUILTIN\Administrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。 • 服务器管理员(Serveradmin):可以更改服务器范围的配置选项和关闭服务器。 • 磁盘管理员(diskadmin):管理磁盘文件。 • 进程管理员(processadmin):可以终止在数据库引擎实例中运行的进程。

  12. 安全管理员(securityadmin):可以管理登录名及其属性。安全管理员(securityadmin):可以管理登录名及其属性。 • 安装管理员(setupadmin):可以添加和删除链接服务器,并可以执行某些系统存储过程。 • 数据库创建者(dbcreator):可以创建、更改、删除和还原任何数据库。 • 大容量插入操作管理者(bulkadmin):可以执行大容量插入操作。

  13. sp_addsrvrolemember、sp_helpsrvrolememeber、sp_dropsrvrolemember等存储过程和IS_SRVROLEMEMBER函数来执行有关固定服务器角色和登录名之间关系的操作sp_addsrvrolemember、sp_helpsrvrolememeber、sp_dropsrvrolemember等存储过程和IS_SRVROLEMEMBER函数来执行有关固定服务器角色和登录名之间关系的操作

  14. 数据库用户 • CREATE USER user_name [ { FOR | FROM }{ LOGIN login_name }| WITHOUT LOGIN ] • [ WITH DEFAULT_SCHEMA = schema_name ]

  15. 添加数据库用户 • 其中的参数说明如下: • user_name:指定在此数据库中用于识别该用户的名称。user_name的长度最多是128个字符。 • LOGIN login_name:指定要创建数据库用户的SQL Server登录名。login_name必须是服务器中有效的登录名。 • WITH DEFAULT_SCHEMA = schema_name:指定服务器为此数据库用户解析对象名时将搜索的第一个架构。 • WITHOUT LOGIN:指定不应将用户映射到现有登录名。

  16. 添加数据库用户 • 注意: • 如果已忽略FOR LOGIN,则新的数据库用户将被映射到同名的SQL Server登录名。 • 如果未定义DEFAULT_SCHEMA,则数据库用户将使用dbo作为默认架构。 • 如果用户是sysadmin固定服务器角色的成员,则忽略DEFAULT_SCHEMA的值。 • 映射到SQL Server登录名不能包含反斜杠字符(\)。 • 例:在STUDENT数据库中为SQL Server用户USER1添加数据库用户,并取名为USER1,默认架构为WITH DEFAULT_SCHEMA=DB_OWNER • CREATE USER USER1 FOR LOGIN TE_LOGIN • WITH DEFAULT_SCHEMA=DB_OWNER

  17. 数据库角色 • SQL Server提供的固定数据库角色的具体含义如下: • public:维护全部默认权限。 • db_accessadmin:可以为登录帐户添加或删除访问权限。 • db_backupoperator:可以备份该数据库。 • db_datareader:可以对数据库中的任何表或视图运行SELECT语句。 • db_datawriter:可以在所有用户表中添加、删除或更改数据。

  18. db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。 • db_denydatareader:不能读取数据库内用户表中的任何数据。 • db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。 • db_owner:可以执行数据库的所有配置和维护活动。 • db_securityadmin:可以修改角色成员身份和管理权限。

  19. 给用户添加角色 • 给te_login赋予 dbreader的角色,然后查看效果! • 给te-login赋予dbcreator的角色,然后查看效果!

  20. 数据库对象权限 • 为STUDENT数据库新创建一个数据库用户USER2,并为其赋予插入users表的权限。 • GRANT INSERT ON [dbo].[users] TO [USER1]

  21. 特殊帐户 • Sa登陆帐户 • Guest数据库用户 • Public角色

  22. 应用程序角色 • 在sa的目录下创建应用程序角色myrole 设置密码为123456 并设置有插入users表的权限。 • 使用te_login登陆,而在te_login帐户中,尚未分配插入users表的权限. • 使用存储过程sp_setapprole来激活应用程序角色 • exec sp_setapprole 'myrole','123456' • insert users values('123','123') • 这样使得te_login具备插入users表的权限

  23. 管理秘钥与证书

  24. 总结

  25. Any Questions? If there are any outstanding questions you can ask me one-to-one after the lecture OR privately in my office.

More Related