SQL Server 2000 数据库管理
description
Transcript of SQL Server 2000 数据库管理
SQL Server 2000 数据库管理 第一章: SQL Server 概述 第二章:准备安装 SQL Server
第三章:管理数据库文件 第四章:管理安全性 第五章:执行管理任务 第六章:备份数据库 第七章:还原数据库 第八章: SQL Server 性能监视 第九章:数据传输 第十章:维护高度可用性 第十一章: SQL Server 复制
第四章:管理安全性 实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
身份验证处理
sysxloginssysxloginssysxloginssysxlogins
Windows 2000Windows 2000 组或用户
SQL Server登录账户
sysxloginssysxloginssysxloginssysxlogins
在 sysxlogins 表中验证验证用户;
信任 Windows 2000 验证密码
在 sysxlogins 表中验证验证用户;
信任 Windows 2000 验证密码
在 sysxlogins 表中验证用户和密码
SQL Server
4.1.1 身份验证处理
选择身份验证模式
Windows 身份验证模式的优点 高级的安全功能 像添加一个账户一样添加组 快速访问
混合模式的优点 允许非 Windows 客户端和 Internet 客户端连
接 SQL Server
4.1.2 选择身份验证模式
使用 Kerberos 相互身份验证
SQL Server
相互身份验证相互身份验证相互身份验证相互身份验证
加密数据密码
加密数据密码
用户
KerberosKerberosKerberosKerberos
4.1.3 使用 Kerberos 相互身份验证
实现身份验证模式的步骤
设置身份验证模式 设置身份验证模式
先停止然后重新启动 MS SQL Server 服务 先停止然后重新启动 MS SQL Server 服务
创建 Windows 2000 组和用户 创建 Windows 2000 组和用户
授权 Windows 2000 组和用户访问 SQL Server 授权 Windows 2000 组和用户访问 SQL Server
为使用非信任连接的用户创建 SQL Server 登录账户 为使用非信任连接的用户创建 SQL Server 登录账户
4.1.6 实现身份验证模式的步骤
第四章:管理安全性
实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
登录账户
master..sysxloginsmaster..sysxloginsmaster..sysxloginsmaster..sysxlogins
namename
BUILTIN\Administratorsaccountingdomain\payrollaccountingdomain\mariamarysa
BUILTIN\Administratorsaccountingdomain\payrollaccountingdomain\mariamarysa
dbnamedbname
masterNorthwindNorthwindpubsmaster
masterNorthwindNorthwindpubsmaster
passwordpassword
NULLNULLNULL****************
NULLNULLNULL****************
4.2 登录账户
第四章:管理安全性
实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
为用户和角色分配登录账户
Northwind..sysusersNorthwind..sysusersNorthwind..sysusersNorthwind..sysusers
uiduid namename
0137
0137
publicdboINFORMATION_SCHEMApayroll
publicdboINFORMATION_SCHEMApayroll
用户存储在此表用户存储在此表权限存储在此表权限存储在此表
Northwind..sysprotectsNorthwind..sysprotectsNorthwind..sysprotectsNorthwind..sysprotects
idid
1977058079197705807919770580791977058079
1977058079197705807919770580791977058079
uiduid
0007
0007
actionaction
193195196193
193195196193
protecttypeprotecttype
205205205205
205205205205
4.3 为用户和角色分配登录在账户
固定服务器角色
角色角色角色角色 权限权限权限权限sysadminsysadmin 执行任何活动执行任何活动
dbcreatordbcreator 创建和更改数据库创建和更改数据库
diskadmindiskadmin 管理磁盘文件管理磁盘文件
processadminprocessadmin 管理 SQL Server 过程管理 SQL Server 过程
serveradminserveradmin 配置服务器设置配置服务器设置
setupadminsetupadmin 安装复制安装复制
securityadminsecurityadmin 管理和检查服务器账户管理和检查服务器账户
bulkadminbulkadmin 执行 BULK INSERT 语句执行 BULK INSERT 语句
4.3.2 为角色分配登录在账户
固定数据库角色
角色角色角色角色 权限权限权限权限publicpublic 维护所有默认权限 维护所有默认权限
db_ownerdb_owner 执行所有数据库角色活动执行所有数据库角色活动
db_accessadmindb_accessadmin 添加和删除数据库用户 , 组及角色添加和删除数据库用户 , 组及角色
db_ddladmindb_ddladmin 添加、更改或删除数据库对象添加、更改或删除数据库对象
db_security admindb_security admin 分配语句执行和对象权限分配语句执行和对象权限
db_backupoperatordb_backupoperator 备份数据库备份数据库
db_datareaderdb_datareader 读取任何表中的数据读取任何表中的数据
db_datawriterdb_datawriter 添加、更改或删除所有表中的数据添加、更改或删除所有表中的数据
db_denydatareaderdb_denydatareader 不能读取任何表中的数据不能读取任何表中的数据
db_denydatawriterdb_denydatawriter 不能更改任何表中的数据不能更改任何表中的数据
4.3.2 为角色分配登录在账户
第四章:管理安全性
实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
权限类型
预定义预定义预定义预定义
固定角色固定角色
对象所有者对象所有者
对象对象对象对象
SELECT INSERTUPDATEDELETEREFERENCES
SELECT INSERTUPDATEDELETEREFERENCES
SELECT UPDATEREFERENCES
SELECT UPDATEREFERENCES
EXECEXEC
TABLEVIEW
COLUMN
STORED PROCEDURE
语句语句语句语句
CREATE DATABASECREATE DATABASE
CREATE TABLECREATE TABLE
CREATE VIEWCREATE VIEW
CREATE PROCEDURECREATE PROCEDURE
CREATE RULECREATE RULE
CREATE DEFAULTCREATE DEFAULT
CREATE FUNCTIONCREATE FUNCTION
BACKUP DATABASEBACKUP DATABASE
BACKUP LOGBACKUP LOG
4.4.1 权限类型
授予、拒绝、废除权限
授予:能够执行操作
授予:能够执行操作
废除:不能执行操作但
可由角色成员重新设置
废除:不能执行操作但
可由角色成员重新设置
拒绝:不能执行操作
拒绝:不能执行操作
4.4.2 授予、拒绝、废除权限
授予权限以允许访问
用户用户 // 角色角色用户用户 // 角色角色 SELECTSELECTSELECTSELECT
EvaEva
IvanIvan
DavidDavid
publicpublic
INSERTINSERTINSERTINSERT
UPDATEUPDATEUPDATEUPDATE
DELETEDELETEDELETEDELETE
DRIDRIDRIDRI
4.4.2 授予、拒绝、废除权限
拒绝权限以阻止访问
用户用户 // 角色角色用户用户 // 角色角色 SELECTSELECTSELECTSELECT
EvaEva
IvanIvan
DavidDavid
publicpublic
INSERTINSERTINSERTINSERT
UPDATEUPDATEUPDATEUPDATE
DELETEDELETEDELETEDELETE
DRIDRIDRIDRI
4.4.2 授予、拒绝、废除权限
废除已授予和已拒绝的权限
用户用户 // 角色角色用户用户 // 角色角色 SELECTSELECTSELECTSELECT
EvaEva
IvanIvan
DavidDavid
publicpublic
INSERTINSERTINSERTINSERT
UPDATEUPDATEUPDATEUPDATE
DELETEDELETEDELETEDELETE
DRIDRIDRIDRI
4.4.2 授予、拒绝、废除权限
第四章:管理安全性
实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
管理 SQL Server 安全性 默认登录账户
sa BUILTIN\Administrators
guest 用户账户 public 角色权限 将权限应用到角色 使用 dbo 创建对象 安全的 CmdExec 和 ActiveScripting 作业步骤
4.5 管理 SQL Server 安全性
第四章:管理安全性 实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
使用视图和存储过程来管理安全性
EmployeesEmployeesEmployeesEmployees
EmployeeIDEmployeeID
123
123
LastNameLastName
DavolioFullerLeverling
DavolioFullerLeverling
FirstName FirstName
NancyAndrewJanet
NancyAndrewJanet
ReportsToReportsTo
2
2
2
2
... ...
SELECT * FROM EmployeesSELECT * FROM Employees
EXEC Employee_Update 1, 9EXEC Employee_Update 1, 9
SELECT * FROM Employee_ViewSELECT * FROM Employee_View
4.6.1 使用视图和存储过程来管理安全性
使用应用程序角色管理客户应用程序
OrdersOrdersOrdersOrders
OrderIDOrderID CustomerID CustomerID EmployeeIDEmployeeID
102481024910250
102481024910250
VINETTOMSPHANAR
VINETTOMSPHANAR
312
312
... ...
Microsoft ExcelMicrosoft Excel订单应用程序订单应用程序
4.6.2 使用应用程序角色管理客户应用程序
EXEC sp_setapprole 'SalesApp',{ENCRYPT N'hg_7532LR'}, 'ODBC'EXEC sp_setapprole 'SalesApp',{ENCRYPT N'hg_7532LR'}, 'ODBC'
激活应用程序角色
用户必须指定密码 范围是当前数据库。如果用户切换到别的数据库,
他们只能根据该数据库中 guest 账户的权限执行相应的操作
在用户从 SQL Server 断开连接之前,不能停用该角色
4.6.4 激活应用程序角色
第四章:管理安全性
实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
在企业中管理 SQL Server 安全性
使用组策略保证 SQL Server 安全性 使用代理服务器、防火墙和路由器 使用在线加密来确保数据安全性
4.7 在企业中管理 SQL Server 安全性
第四章:管理安全性
实现身份验证模式 登录账户 为用户和角色分配登录账户 为用户和角色分配权限 管理 SQL Server 安全性 管理应用程序的安全性 在企业中管理 SQL Server 安全性 最佳实践
使用混合模式来连接非信任客户端或 Internet 客户端 使用混合模式来连接非信任客户端或 Internet 客户端
使用 System Administrators (sysadmin) 角色而非 sa 登录账户 使用 System Administrators (sysadmin) 角色而非 sa 登录账户
先删除 Windows 2000 账户 , 然后删除 SQL Server 账户先删除 Windows 2000 账户 , 然后删除 SQL Server 账户
dbo 用户拥有所有对象的所有权dbo 用户拥有所有对象的所有权
使用存储过程和视图来简化安全性 使用存储过程和视图来简化安全性
最佳实践4.8 最佳实践