SQL server 数据库的安全管理范文.docx
- 文档编号:10164686
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:21
- 大小:22.23KB
SQL server 数据库的安全管理范文.docx
《SQL server 数据库的安全管理范文.docx》由会员分享,可在线阅读,更多相关《SQL server 数据库的安全管理范文.docx(21页珍藏版)》请在冰豆网上搜索。
SQLserver数据库的安全管理范文
第11章数据库的安全管理
本章内容
11.1SQLServer的安全机制
11.2登录账号管理
11.3数据库用户的管理
11.4角色管理
11.5权限管理
11.1SQLServer的安全机制
11.1.1身份验证
11.1.2身份验证模式的设置
11.1.1身份验证
⏹SQLServer的安全性管理是建立在身份验证和访问许可两者机制上的。
⏹身份验证是确定登录SQLServer的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQLServer的权限。
⏹通过认证的用户必须获取访问数据库的权限,才能对数据库进行权限许可下的操作。
SQLServer身份验证模式
(1)Windows身份验证模式
⏹该模式使用Windows操作系统的安全机制验证用户身份,只要用户能够通过Windows用户账号验证,即可连接到SQLServer而不再进行身份验证。
⏹这种模式只适用于能够提供有效身份验证的Windows操作系统。
(2)混合身份验证模式
⏹在该模式下,Windows身份验证和SQLserver验证两种模式都可用。
对于可信任连接用户(由Windows验证),系统直接采用Windows的身份验证机制,否则SQLServer将通过账号的存在性和密码的匹配性自行进行验证,即采用SQLServer身份验证模式。
11.1.2身份验证模式的设置
⏹在该模式下,Windows身份验证和SQLserver验证两种模式都可用。
对于可信任连接用户(由Windows验证),系统直接采用Windows的身份验证机制,否则SQLServer将通过账号的存在性和密码的匹配性自行进行验证,即采用SQLServer身份验证模式。
身份验证内容
⏹包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据库。
11.1.2身份验证模式的设置
(1)打开企业管理器,在树型结构窗口中展开一个服务器组,选择要设置身份验证模式的服务器。
(2)在该服务器上单击鼠标右键,在弹出的菜单中选择“属性”项。
(3)打开“属性”对话框,选择“安全性”选项卡
(4)在“身份验证”处选择要设置的验证模式,同时可以在“审核级别”处选择任意一个单选按钮,来决定跟踪记录用户登录时的哪种信息,例如登录成功或失败的信息。
(5)单击“确定”按钮完成设置。
通过编辑SQLServer注册属性来完成身份验证模式的设置
(1)打开企业管理器,在树型结构窗口中选择要设置身份验证模式的服务器。
(2)在该服务器上单击鼠标右键,在弹出菜单中选择“编辑SQLServer注册属性”项
(3)打开“已注册SQLServer属性”对话框
(4)选择要设置的身份验证模式,单击“确定”按钮。
11.2登录账号管理
11.2.1创建登录账户
11.2.2修改登录账户
11.2.3删除登录账户
11.2.1创建登录账户
⏹创建登录账户的方法有两种:
☐一种是从Windows用户或组中创建登录账户
☐一种是创建新的SQLServer登录账户。
1.通过Windows身份验证创建登录
(1)创建Windows用户
①以管理员身份登录到Windows2000,选择“开始→程序→管理工具→计算机管理”选项。
②展开“本地用户和组”文件夹,选择“用户”图标,单击鼠标右键,在快捷菜单中选择“新用户”项,打开“新用户”对话框,输入用户名、密码,单击“创建”按钮,然后单击“关闭”按钮完成创建。
(2)使用企业管理器将Windows2000账号加入到SQLServer中,创建SQLServer登录
①以管理员身份登录到SQLServer,进入企业管理器,选择要访问的服务器。
②展开“安全性”文件夹,右键单击“登录”项,在弹出菜单中选择“创建登录”项,打开“SQLServer登录属性”对话框。
③在“SQLServer登录属性”对话框的“常规”选项卡中,单击“名称”输入框旁的“浏览”按钮,在弹出对话框的“名称”列表中选择名为“xh001”的用户,单击“添加”按钮。
④单击“确定”按钮,返回“SQLServer登录属性”对话框,Windows用户xh001就可以连接SQLServer了。
对于已经创建的Windows用户或组,可以使用系统存储过程sp_grantlogin授予其登录SQLServer的权限。
⏹其语法格式如下:
sp_grantlogin[@loginame=]'login'
其中,[@loginame=]'login'为要添加的Windows用户或组的名称,名称格式为“域名\计算机名\用户名”。
例11-1使用系统存储过程sp_grantlogin将Windows用户huang加入SQLServer中。
EXECsp_grantlogin'jsjx-yp\huang'
或
EXECsp_grantlogin[jsjx-yp\huang]
该操作授予了Windows用户jsjx-yp\huang连接到SQLServer的权限。
例11-2授予本地组Users中的所有用户连接SQLServer的权限。
EXECsp_grantlogin'BUILTIN\Users'
该操作由于授予的是本地组中的用户,所以使用BUILTIN关键字代替域名和计算机名。
2.创建SQLServer登录
⏹如果使用混合验证模式或不通过Windows用户或用户组连接SQLServer,则需要在SQLServer下创建用户登录权限,使用户得以连接使用SQLServer身份验证的SQLServer实例。
(1)使用企业管理器创建登录账户
①打开企业管理器,在树型结构窗口中展开要设置身份验证模式的服务器。
展开“安全性”选项,用鼠标右键单击其中的“登录”项,在弹出的快捷菜单中单击“新建登录”命令,打开“新建登录”对话框,参见图11-7。
②在“新建登录”对话框的“常规”选项卡的“名称”框中输入SQLServer登录的名称,例如ZG001。
③选中“SQLServer身份验证”,在“密码”框中输入密码,例如001。
④在“数据库”下拉框中选择登录到SQLServer实例后要连接的默认数据库,例如master数据库。
⑤在“语言”对话框中,选择显示给用户的信息所用的默认语言。
⑥单击“确定”按钮,“确认密码”对话框输入确认新密码,如001,单击“确定”按钮完成操作。
(2)使用系统存储过程sp_addlongin创建登录
sp_addlogin语法格式如下:
sp_addlogin[@loginame=]'login'
[,[@passwd=]'password']
[,[@defdb=]'database']
[,[@deflanguage=]'language']
[,[@sid=]sid]
[,[@encryptopt=]'encryption_option']
例11-3使用系统存储过程sp_addlongin创建登录,新登录名为“ZG002”,密码为“002”默认数据库为“Sales”。
EXECsp_addlogin'ZG002','002','Sales'
例11-3使用系统存储过程sp_addlongin创建登录,新登录名为“ZG002”,密码为“002”默认数据库为“Sales”。
EXECsp_addlogin'ZG002','002','Sales'
例11-4创建没有密码和默认数据库的登录,登录名为“ZG003”。
EXECsp_addlogin'ZG003'
该操作为用户ZG003创建一个SQLServer登录名,没有指定密码和默认数据库,使用默认密码NULL和默认数据库master。
3.查看用户
⏹创建了登录账户后,如果需要确定用户是否有连接SQLServer实例的权限,以及可以访问哪些数据库的信息时,可以使用系统存储过程sp_helplogins查看。
⏹sp_helplogins的语法格式如下:
sp_helplogins[[@LoginNamePattern=]'login']
例11-5查看账户信息。
EXECsp_helplogins'ZG002'
该操作查询有关登录ZG002的信息
11.2.2修改登录账户
sp_password的语法格式为:
sp_password[[@old=]'old_password',]
{[@new=]'new_password'}[,[@loginame=]'login']
sp_defaultdb的语法格式为:
sp_defaultdb[@logname=]'login',[@defdb=]'databases'
sp_defaultlanguage的语法格式为:
sp_defaultlanguage[@loginame=]'login'[,[@language=]'language']
11.2.3删除登录账户
1.使用企业管理器删除登录
其操作步骤如下:
(1)打开企业管理器,在树型结构窗口中展开一个服务器组,选择服务器并展开。
(2)展开“安全性”文件夹,单击“登录”项。
(3)在“登录”详细列表中鼠标右键单击要删除的用户,这里选择“jsjx-yp\xh001”,确定删除。
2.使用Transact-SQL语句删除登录账号
⏹删除登录账号有两种形式:
删除Windows用户或组登录和删除SQLServer登录。
(1)删除Windows用户或组登录
sp_revokelogin的语法格式为:
sp_revokelogin[@liginame=]'login'
其中,[@liginame=]'login'为Windows用户或组的名称。
例11-7使用系统存储过程sp_revokelogin删除例11-1创建的Windows用户'jsjx-yp\huang'的登录账号
EXECsp_revokelogin'jsjx-yp\huang'
或
EXECsp_revokelogin[jsjx-yp\huang]
(2)删除SQLServer登录
⏹使用sp_droplogin可以删除SQLServer登录。
其语法格式如下:
sp_droplogin[@loginame=]'login‘
⏹例11-8使用系统存储过程sp_droplogin删除SQLServer登录账号ZG001。
EXECsp_droplogin'ZG001'
11.3数据库用户的管理
1.使用企业管理器创建数据库用户
⏹其操作步骤如下:
(1)打开企业管理器,选定要访问的服务器。
(2)展开“数据库”文件夹,选定需要增加用户的数据库。
(3)鼠标右键单击该数据库,从弹出的快捷菜单中选择“新建→数据库用户”选项,打开“数据库用户属性”对话框。
(4)打开“数据库用户属性”对话框
(4)在“数据库用户属性”对话框的“登录名”下拉框中选择允许访问数据库的登录账号,如ZG001,并指定使用的用户名和该用户所属的数据库角色等信息,用户名与登录名可以不同。
(5)单击“确定”完成该数据库用户的创建。
2.使用系统存储过程创建数据库用户
⏹SQLServer使用系统存储过程sp_grantdbaccess为数据库添加用户,其语法格式如下:
sp_grantdbaccess
[@loginame=]'login'
[,[@name_in_db=]'name_in_db'[OUTPUT]
例11-9使用系统存储过程在当前数据库中增加一个用户。
EXECsp_grantdbaccess'ZG002'
3.删除数据库中的用户或组
(1)使用企业管理器删除数据库用户
在SQLServer企业管理器中,选中“用户”图标,在右面窗格中右键单击想要删除的数据库用户,在弹出菜单中选择“删除”项,则从当前数据库中删除该数据库用户。
(2)使用系统存储过程删除数据库用户
sp_revokedbaccess的语法格式为:
sp_revokedbaccess[@name_in_db=]'name'
例11-10使用系统存储过程在当前数据库中删除指定的用户。
EXECsp_revokedbaccess'ZG002'
11.4角色管理
11.4.1SQLServer角色的类型
11.4.2固定服务器角色管理
11.4.3数据库角色管理
11.4.4用户定义数据库角色
11.4.1SQLServer角色的类型
SQLServer中有两种角色类型:
固定角色和用户定义数据库角色。
1.固定角色
⏹固定角色分为
☐固定服务器角色:
独立于各个数据库,具有固定的权限。
☐固定数据库角色:
是指角色所具有的管理、访问数据库权限已被SQLServer定义,并且SQLServer管理者不能对其所具有的权限进行任何修改。
表11-1固定服务器角色
表11-2固定数据库角色
2.用户定义数据库角色
⏹当某些数据库用户需要被设置为相同的权限,但是这些权限不同于固定数据库角色所具有的权限时,就可以定义新的数据库角色来满足这一要求,从而使这些用户能够在数据库中实现某一特定功能。
⏹用户定义数据库角色的优点是:
SQLServer数据库角色可以包含Windows用户组或用户;同一数据库的用户可以具有多个不同的用户定义角色,这种角色的组合是自由的,而不仅仅是public与其他一种角色的结合;角色可以进行嵌套,从而在数据库中实现不同级别的安全性。
11.4.2固定服务器角色管理
⏹固定服务器角色不能进行添加、删除或修改等操作,只能将用户登录添加为固定服务器角色的成员。
1.添加固定服务器角色成员
例11-11使用企业管理器将登录ZG001添加为固定服务器角色“DatabaseCreators”成员。
(1)打开企业管理器,选择要访问的服务器并展开。
(2)展开“安全性”文件夹,单击“服务器角色”项。
(3)在右窗格中,鼠标右键单击服务器角色“DatabaseCreators”项,在弹出的快捷菜单中选择“属性”项,打开“服务器角色属性”对话框
(4)单击“服务器角色属性”对话框的“添加”按钮,打开“添加成员”对话框。
在“选择要添加的登录”列表中选择登录“ZG001”,单击“确定”按钮完成操作。
固定服务器角色成员的添加
操作步骤如下:
(1)在展开的服务器的“安全性”文件夹中,单击“登录”项。
(2)在右窗格中选择登录成员“ZG001”,双击鼠标,打开“SQLServer登录属性”对话框。
(3)在“SQLServer登录属性”对话框中选择“服务器角色”选项卡,选中“DatabaseCreators”服务器角色的复选框。
单击“确定”按钮完成操作。
sp_addsrvrolemember用于添加固定服务器角色成员
⏹语法格式为:
sp_addsrvrolemember
[@loginame=]'login',
[@rolename=]'role'
例11-12使用系统存储过程将登录ZG002添加为固定服务器角色sysadmin的成员。
EXECsp_addsrvrolemember'ZG002','sysadmin'
2.删除固定服务器角色成员
⏹删除固定服务器角色成员的语句是sp_dropsrvrolemember,其语法格式为:
sp_dropsrvrolemember
[@loginame=]'login',
[@rolename=]'role'
例11-13使用系统存储过程从固定服务器角色sysadmin中删除登录ZG002。
EXECsp_dropsrvrolemember'ZG002','sysadmin'
3.查看固定服务器角色信息
⏹使用sp_helpsrvrole、sp_helpsrvrolemember可了解有关固定服务器角色及其成员的信息。
⏹查看固定服务器角色sp_helpsrvrole的语法格式为:
sp_helpsrvrole[[@srvrolename=]'role']
[@srvrolename=]'role'为固定服务器角色名称
sp_helpsrvrolemember查看固定服务器角色成员
语法格式为:
sp_helpsrvrolemember
[[@srvrolename=]'role']
例11-14查看固定服务器角色sysadmin及其成员的信息。
EXECsp_helpsrvrole'sysadmin'
GO
EXECsp_helpsrvrolemember'sysadmin'
11.4.3数据库角色管理
1.添加数据库角色成员
使用系统存储过程sp_addrolemember向数据库角色中添加成员,其语法格式为:
sp_addrolemember
[@rolename=]'role',
[@membername=]'security_account'
例11-15向数据库Sales添加Windows用户“jsjx-yp\xh001”。
USESales
GO
EXECsp_grantdbaccess'jsjx-yp\xh001','xh001'
GO
EXECsp_addrolemember'db_ddladmin','xh001'
例11-16向数据库添加例11-3创建的SQLServer用户ZG002为db_owner角色成员。
EXECsp_addrolemember'db_owner','ZG002'
2.删除数据库角色成员
⏹使用sp_droprolemember删除当前数据库角色中的成员,其语法格式为:
sp_droprolemember
[@rolename=]'role',
[@membername=]'security_account'
例11-17删除数据库角色中的用户。
EXECsp_droprolemember'db_owner','ZG002'
3.查看数据库角色及其成员信息
⏹查看数据库角色及其成员的信息可以使用系统存储过程sp_helpdbfixedrole、sp_helprole和sp_helpuser
☐sp_helpdbfixedrole的语法格式为:
sp_helpdbfixedrole[[@rolename=]'role']
☐sp_helprole的语法格式为:
sp_helprole[[@rolename=]'role']
☐sp_helpuser的语法格式为:
sp_helpuser[[@name_in_db=]'security_account']
例11-18查看当前数据库中所有用户及db_owner数据库角色的信息。
EXECsp_helpuser
EXECsp_helpdbfixedrole'db_owner'
11.4.4用户定义数据库角色
1.创建和删除用户定义数据库角色
创建和删除用户定义数据库角色可以使用企业管理器和系统存储过程实现。
例11-19使用企业管理器创建用户定义数据库角色。
(1)打开企业管理器,展开选定的数据库。
(2)右键单击“角色”项,在弹出的快捷菜单中单击“新建数据库角色”命令,打开“新建角色”对话框。
(3)在“名称”框中输入角色名“wang”,在“数据库角色类型”项下,选择“标准角色”单选按钮。
(4)单击“确定”按钮完成操作。
例11-20使用企业管理器删除用户定义数据库角色“wang”。
(1)打开企业管理器,展开选定的数据库,单击“角色”项。
(2)在若窗格中右键单击要删除的数据库角色“wang”,在弹出的菜单中选择“删除”命令。
(3)在弹出的对话框中单击“是”按钮,完成删除操作。
使用sp_addrole和sp_droprole可以创建和删除用户定义数据库角色
其语法格式分别为:
⏹sp_addrole[@rolename=]'role'[,[@ownername=]'owner']
⏹sp_droprole[@rolename=]'role'
例11-21使用系统存储过程创建名为“role01”的用户定义数据库角色到Sales数据库中。
UseSales
GO
EXECsp_addrole'role01'
例11-22使用系统存储过程删除数据库Sales中名为“role01”的用户定义数据库角色。
USESales
GO
EXECSP_droprole'role01'
2.添加和删除用户定义数据库角色成员
⏹添加和删除用户定义数据库角色成员可以使用企业管理器和系统存储过程来完成。
例11-23使用企业管理器将成员添加到用户定义数据库角色ZG001中。
(1)打开企业管理器,展开Sales数据库。
(2)单击“角色”项,在右窗格中,右键单击角色“role01”,在弹出的菜单中选择“属性”项,打开“数据库角色属性”对话框。
(3)在“数据库角色属性”对话框中单击“添加”按钮,打开“添加角色成员”对话框。
(4)在“选择要添加的用户”列表中选择登录“ZG001”,单击“确定”按钮完成操作。
例11-24使用系统存储过程将ZG002添加为Sales数据库的role01角色的成员。
USESales
GO
EXECsp_addrolemember'role01','ZG002'
例11-25将SQLServer登录账号“ZG003”添加到Sales数据库中,其用户名为“ZG003”,然后再将ZG003添加为该数据库的role01角色的成员。
USESales
GO
EXECsp_grantdbaccess'ZG003','ZG003'
EXECsp_addrolemember'role01','ZG003'
11.5权限管理
11.5.1权限的种类
11.5.2授予权限
11.5.3禁止与撤消权限
11.5.4查看权限
11.5.1权限的种类
⏹权限是指用户对数据库中对象的使用及操作的权利,当用户连接到SQLServer实例后,该用户要进行的任何涉及修改数据库或访问数据的活动都必须具有相应的权限,也就是用户可以执行的操作均由其被授予的权限决定。
⏹SQLServer中的权限包括3种类型:
对象权限、语言权限和隐含权限。
1.对象权限
⏹对象权限用于用户对数据库对象执行操作的权力,即处理数据或执行存储过程(INSERT、UPDATE、DELETE、EXECUTE等)所需要的权限,这些数据库对象包括表、视图、存储过程。
表11-3对象及作用的操作
2.语句权限
⏹语句权限主要指用户是否具有权限来执行某一语句,这些语句通常是一些具有管理性的操作,如创建数据库、表、存储过程等。
这种语句虽然也包含有操作(如CREATE)的对象,但这些对象在执行该语句之前并不存在于数据库中,所以将其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL server 数据库的安全管理范文 数据库 安全管理 范文