继续上一篇内容 SQL Server 数据库基本记录(一)
数据库用户管理
- 登录名 用于连接到 SQL Server 服务器(不一定能对数据库内容执行操作)
- 数据库用户名
- SQL Server 的使用者
- 每个用来登录 SQL Server 的账号都是一个用户
- 同一个数据库可以拥有多个用户,同一个用户也可以同时访问多个数据库
- 创建登录名和为用户赋予操作权限
- 创建登录名
CREATE LOGIN <登录名> WITH PASSWORD=<'密码'>
- 创建数据库用户
CREATE USER 数据库用户 FOR LOGIN=登录名
- 为数据库用户赋予权限
GRANT 操作权限 ON 表名 TO 用户名
- 角色:事先定义好的一组权限,数据库服务器方面的控制权限:服务器角色 -- 例如创建、修改、删除数据库、管理磁盘文件、添加或删除数据库连接等 -- 服务器级别的对象,只能包含登录名
- 数据库的所有者:abo -- 每个数据库中都存在 -- 登录名 sa 自动映射为数据库用户 abo
角色名 | 描述 |
---|---|
bulkadmin | 运行 bulk 语句,可将文本文件内的数据导入到 SQL Server 2008 中 |
dbcreator | 创建、更改、删除和还原任何数据库 |
diskadmin | 管理磁盘文件 |
processadmin | 管理 SQL Server 中运行的进程 |
securityadmin | 管理和审核登录账户 |
serveradmin | 设置服务器范围的配置 |
setupadmin | 添加和删除连接服务器,并执行没某些系统存储过程 |
sysadmin | 可在服务器引擎中执行任何活动 |
public | 两大特点:1. 初始状态时没有权限 2. 所有数据库用户都是它的成员 |
- 角色:事先定义好的一组权限,数据库中数据的控制权限:数据库用户角色 -- 数据库级别的一个对象,只能包含数据库用户名 -- 例如可访问哪个数据库,可访问哪个数据库中的哪些数据表,哪些视图等 -- 对哪些数据表执行哪些操作,比如是插入操作还是更新操作
- 固定数据库角色 -- 一组 SQL Server 预定义的数据库角色 -- 具有数据库级别的管理权限
- 自定义数据库角色 -- 当固定数据库角色不能满足需求时,可自定义数据库角色
角色名 | 描述 |
---|---|
db_owner | 执行所有的配置活动和维护活动,以及授予或取消数据库对象上的 select,insert,update |
db_accessadmin | Windows 登录账户 |
db_datawriter | 向来自数据库中的所有用户表添加、更新、删除数据 |
db_datareader | 读取数据库中所有用户表中的数据 |
db_ddladmin | 运行任何数据库语言命令 |
db_securityadmin | 管理数据库安全,可修改角色成员身份和管理权限 |
db_backupoperator | 可备份数据库 |
db_denydatareader | 不能查看数据库中用户表的任何数据 |
db_denydatawriter | 不能向用户表中添加、更新或删除任何数据 |
public | 特殊的固定数据库用户,每个数据库用户都属于 public 数据角色 |
public 数据库角色的特点:
- 捕获数据库中用户的默认权限
- 所有用户、角色或组默认属于 public
- 无法将用户、组或角色指派给它,因为默认情况下它属于该角色
- 不能被删除
数据库的维护
数据库状态
- 两种状态
- online:可对数据库进行访问
- offline:数据库无法使用
- 查看数据库状态的方法
- 使用查询语句
SELECT state_desc FROM sys.databases WHERE NAME = 'E_Market'
**E.g:**
- 使用函数查询
SELECT DATABASEPROPERTYEX('E_Market', 'status')
**E.g:**
- online (联机) -- 数据库处在可操作,可查询状态
- offline (脱机) -- 断开数据库跟所有用户的连接 -- 数据库名在数据库节点中存在 -- 不能执行任何有效的数据库操作
分离和附加数据库
- 分离数据库
EXEC sp_detach_db @dbname=E_Market
- 附加数据库
EXEC sp_detach_db @dbname=E_Market,
@filename1='F:\Project\E_Market_data.mdf', -- 主文件
@filename2='F:\Project\E_Market_log.ldf' -- 日志文件
> E_Market 均为数据名
- 脱机和分离数据库的异同点
- 不同点: -- 脱机:与数据库断开连接,但数据库节点还存在脱机数据库名称 -- 分离:将数据库从服务器上分离出去,数据库不存在,只存在对应的数据文件和日志文件
- 相同点:都可对数据库文件进行复制等操作
收缩数据库
- 删除数据库的每个文件中已分配但还未使用的页
- 收缩后数据库空间自动减少
SQL Server 提供的备份方式
- 完整备份:备份整个数据库的所有内容包括事物日志
- 差异备份:只备份上次 完整备份 后更改过的数据部分
- 事务日志备份:至备份事物日志里的内容
- 文件或文件组备份:只备份文件或文件组中的某些文件
在数据库完整备份期间,SQL Server 做以下工作
- 备份数据及数据库中所有表的结构和相关的文件结构
- 备份在备份期间发生的所有活动
- 备份在事物日志中为确认的事物
差异备份:
- 是完整备份的补充
- 备份上次完整备份后,数据变动的部分