数据库安全性及用户权限管理.ppt
《数据库安全性及用户权限管理.ppt》由会员分享,可在线阅读,更多相关《数据库安全性及用户权限管理.ppt(57页珍藏版)》请在冰豆网上搜索。
![数据库安全性及用户权限管理.ppt](https://file1.bdocx.com/fileroot1/2022-10/7/083e4283-252e-4772-84e5-7b364e527d29/083e4283-252e-4772-84e5-7b364e527d291.gif)
项目5:
数据库安全性及用户权限管理任务5-1:
SQLServer安全架构任务5-2:
数据库登录的管理任务5-3:
数据库用户的管理任务5-4:
数据库角色的管理任务5-5:
访问权限的管理,任务5-1:
SQLServer安全架构,1、SQLServer的安全认证模式,用户想操作SQLServer中某一数据库中的数据,必须满足以下3个条件:
首先,登录SQLServer服务器时必须通过身份验证;其次,必须是该数据库的用户或者是某一数据库角色的成员;最后,必须有执行该操作的权限。
从上面三个条件可以看出SQLServer数据库的安全性检查是通过登录名、用户、权限来完成的。
2、两种身份验证模式,Windows身份验证模式混合验证模式,1)Windows身份验证模式,当用户通过Windows用户帐户进行连接时,SQLServer通过回叫Windows以获得信息,重新验证帐户名和密码,并在sys.syslogins系统视图中查找该帐户,以确定该帐户是否有权限登录。
在这种方式下,用户不必提供登录名和密码让SQLserver验证。
2)混合验证模式,混合验证模式使用户能够通过Windows身份验证或SQLServer身份验证与SQLServer实例连接。
在SQLServer验证模式下,SQLServer在sys.syslogins系统视图中检测输入的登录名和密码。
如果在sys.syslogins视图中存在该登录名,并且密码也是匹配的,那么该登录名可以登录到SQLServer;否则,登录失败。
在这种方式下,用户必须提供登录名和密码,让SQLserver验证。
3)设置验证模式,可以使用SQLServerManagementStudio来设置或改变验证模式。
任务5-2:
数据库登录的管理,1、系统安装时创建的登录账户,SQLServer2005安装好之后,系统会自动产生一些系统内置登录账户。
本地管理员组(BUILTAdministrators)默认属于sysadmin角色中的成员,因此具有管理员权限。
系统管理员(sa)默认情况下,它指派给固定服务器角色sysadmin,并不能进行更改。
2、创建登录账户,1)使用SQLServerManagementStudio添加Windows登录账户2)使用SQLServerManagementStudio添加SQLServer登录账户,3)使用CREATELOGIN语句创建登录账户CREATELOGINlogin_nameWITH|FROM示例:
创建一个使Windows用户myComputermyName得以连接到SQLServer的登录账户。
CREATELOGINmyComputermyNameFROMWINDOWS示例:
创建一个SQLServer登录,登录名为lisi并指定密码abcd。
CREATELOGINlisiWITHPASSWORD=abcd示例:
CREATELOGINmyLoginWITHPASSWORD=123,也可用存储过程创建登录账户:
创建Windows验证登录的语法格式:
sp_grantloginlogin创建SQLServer验证登录的语法格式:
sp_addloginlogin,password,default_database,3、修改登录账户,1)使用SQLServerManagementStudio修改登录账户的属性,2)使用ALTERLOGIN语句修改登录账户属性ALTERLOGINlogin_name|WITH,.示例:
将lisi登录账户名称更改为lisi_new。
ALTERLOGINlisiWITHNAME=lisi_new示例:
将lisi_new登录账户的密码修改为“abcdef”。
ALTERLOGINlisi_newWITHPASSWORD=abcdef,也可用存储过程修改登录账户属性:
拒绝Windows验证登录帐户的语法格式为:
sp_denyloginlogin更改登录帐号密码的语法格式为:
sp_passwordold_password,new_password,login,3、查看登录账户,1)使用SQLServerManagementStudio查看登录账户2)使用系统存储过程sp_helplogins查看登录账户,4、删除登录账户,1)使用SQLServerManagementStudio删除登录账户2)使用DROPLOGIN语句删除登录账户DROPLOGINlogin_name示例:
删除登录账户lisi_new。
DROPLOGINlisi_new,也可用存储过程删除登录账户:
删除Windows验证登录的语法格式:
sp_revokeloginlogin删除SQLServer验证登录的语法格式:
sp_droploginlogin,任务5-3:
数据库用户的管理,1、默认数据库用户,1)数据库所有者(DataBaseOwner,dbo)dbo是数据库的所有者,拥有数据库中的所有对象,每个数据库都有dbo,sysadmin服务器角色的成员自动映射成dbo,无法删除dbo用户,且此用户始终出现在每个数据库中。
通常,登录名sa映射为库中的用户dbo。
另外,由固定服务器角色sysadmin的任何成员创建的任何对象都自动属于dbo。
2)GUEST用户,Guest用户帐户允许没有用户帐户的登录名访问数据库。
当登录名没有被映射到一个用户名上时,如果在数据库中存在Guest用户,登录名将自动映射成Guest,并获得相应的数据库访问权限。
Guest用户可以和其他用户一样设置权限,不能删除Guest用户,但可在除master和tempdb之外的任何数据库中禁用Guest用户。
3)Information_schema和sys用户,每个数据库中都包含Information_scheme和sys用户,它们出现在目录视图中。
使用它们获取有关数据库的元数据信息。
2、创建数据库用户,1)使用SQLServerManagementStudio添加数据库用户,2)使用CREATEUSER语句添加数据库用户CREATEUSERuser_nameFOR|FROMLOGINlogin_name示例:
在Sales数据库中创建数据库用户myUser,其登录名为myLogin。
UseSalesGoCREATEUSERmyUserFROMLOGINmyLogin,也可用存储过程sp_adduser创建数据库用户:
3、查看数据库用户,1)使用SQLServerManagementStudio查看数据库用户2)使用存储过程sp_helpuser查看数据库用户,4、删除数据库用户,1)使用SQLServerManagementStudio删除数据库用户2)使用DROPUSER语句删除数据库用户格式为:
DROPUSERuser_name也可使用存储过程sp_dropuser删除数据库用户,格式为:
sp_dropuseruser,任务5-4:
数据库角色的管理,1、角色的概念及分类,角色是为了易于管理而按相似的工作属性对用户进行分组的一种方式。
在SQLServer中,组是通过角色来实现的。
在SQLServer中,角色分为服务器角色和数据库角色两种。
服务器角色是服务器级别的一个对象,只能包含登录名。
数据库角色是数据库级别的一个对象,只能包含数据库用户名。
2、固定服务器角色,固定服务器角色描述Sysadmin在SQLServer中执行任何活动。
Serveradmin配置服务器范围的设置。
Setupadmin添加和删除链接服务器,并执行某些系统存储过程(如sp_serveroption)。
Securityadmin管理服务器登录。
Processadmin管理在SQLServer实例中运行的进程。
Dbcreator创建和改变数据库。
Diskadmin管理磁盘文件。
bulkadmin执行BULKINSERT(大容量插入)语句。
1)使用SQLServerManagementStudio给登录账户设置固定服务器角色功能。
2)使用存储过程sp_addsrvrolemember给登录账户设置固定服务器角色功能。
其语法格式为:
sp_addsrvrolememberlogin,role其中:
login:
添加到固定服务器角色中的登录名。
role:
要添加登录名的固定服务器角色的名称。
示例:
sp_addsrvrolemembermyLogin,sysadmin,3)使用SQLServerManagementStudio撤销给登录账户所设置的服务器角色功能。
4)使用存储过程sp_dropsrvrolemember撤销给登录账户所设置的服务器角色功能。
其语法格式为:
sp_dropsrvrolememberlogin,role示例:
sp_dropsrvrolemembermyLogin,sysadmin,3、固定数据库角色,固定数据库角色描述db_owner数据库拥有者,可以执行所有数据库角色的活动,以及数据库中的其它维护和配置活动。
db_accessadmin在数据库中添加或删除WindowsNT4.0或Windows2000组和用户以及SQLServer用户。
db_datareader查看来自数据库中所有用户表的全部数据。
db_datawriter添加、更改或删除来自数据库中所有用户表的数据。
db_ddladmin添加、修改或除去数据库中的对象(运行所有DDL)。
db_securityadmin管理SQLServer2005数据库角色的角色和成员,并管理数据库中的语句和对象权限。
db_backupoperator有备份数据库的权限。
db_denydatareader不允许查看数据库数据的权限。
db_denydatawriter不允许更改数据库数据的权限。
Public数据库中用户的所有默认权限。
1)使用SQLServerManagementStudio给用户设置固定数据库角色功能。
2)使用存储过程sp_addrolemember给用户设置固定数据库角色功能。
其语法格式为:
sp_addrolememberrole,security_account其中:
role:
当前数据库中的数据库角色的名称。
security_account:
是添加到该角色的用户。
示例:
sp_addrolememberdb_datareader,myUser,3)使用SQLServerManagementStudio撤销给用户所设置的数据库角色功能。
4)使用存储过程sp_droprolemember撤销给用户所设置的数据库角色功能。
其语法格式为:
sp_droprolememberrole,security_account示例:
sp_droprolememberdb_datareader,myUser,4、自定义数据库角色,当一组用户需要在SQLServer中执行一组指定的活动时,为了方便管理,可以创建用户自定义的数据库角色。
1)使用SQLServerManagementStudio创建用户自定义数据库角色。
2)使用CREATEROLE语句创建数据库角色。
其语法格式为:
CREATEROLErole_nameAUTHORIZATIONowner_name其中:
role_name:
将创建的数据库角色名称。
AUTHORIZATIONowner_name:
将拥有新角色的数据库用户或角色。
示例:
CREATEROLEmyRole,也可用存储过程sp_addrole创建数据库角色:
示例:
sp_addroletestRole,dbo,3)使用存储过程sp_addrolemember给新