SQL Server 数据库基本记录(二)

788 阅读4分钟

继续上一篇内容 SQL Server 数据库基本记录(一)

数据库用户管理

  1. 登录名 用于连接到 SQL Server 服务器(不一定能对数据库内容执行操作)
  2. 数据库用户名
    • SQL Server 的使用者
    • 每个用来登录 SQL Server 的账号都是一个用户
    • 同一个数据库可以拥有多个用户,同一个用户也可以同时访问多个数据库
  3. 创建登录名和为用户赋予操作权限
  • 创建登录名
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
  • 无法将用户、组或角色指派给它,因为默认情况下它属于该角色
  • 不能被删除

数据库的维护

数据库状态

  1. 两种状态
    • online:可对数据库进行访问
    • offline:数据库无法使用
  2. 查看数据库状态的方法
  • 使用查询语句
SELECT state_desc FROM sys.databases WHERE NAME = 'E_Market'
**E.g:**

  • 使用函数查询
SELECT DATABASEPROPERTYEX('E_Market', 'status')
**E.g:**

  • online (联机) -- 数据库处在可操作,可查询状态
  • offline (脱机) -- 断开数据库跟所有用户的连接 -- 数据库名在数据库节点中存在 -- 不能执行任何有效的数据库操作

分离和附加数据库

  1. 分离数据库
EXEC sp_detach_db @dbname=E_Market
  1. 附加数据库
EXEC sp_detach_db @dbname=E_Market,
@filename1='F:\Project\E_Market_data.mdf',	-- 主文件
@filename2='F:\Project\E_Market_log.ldf'	-- 日志文件
> E_Market 均为数据名
  1. 脱机和分离数据库的异同点
  • 不同点: -- 脱机:与数据库断开连接,但数据库节点还存在脱机数据库名称 -- 分离:将数据库从服务器上分离出去,数据库不存在,只存在对应的数据文件和日志文件
  • 相同点:都可对数据库文件进行复制等操作

收缩数据库

  • 删除数据库的每个文件中已分配但还未使用的页
  • 收缩后数据库空间自动减少

SQL Server 提供的备份方式

  1. 完整备份:备份整个数据库的所有内容包括事物日志
  2. 差异备份:只备份上次 完整备份 后更改过的数据部分
  3. 事务日志备份:至备份事物日志里的内容
  4. 文件或文件组备份:只备份文件或文件组中的某些文件

在数据库完整备份期间,SQL Server 做以下工作

  • 备份数据及数据库中所有表的结构和相关的文件结构
  • 备份在备份期间发生的所有活动
  • 备份在事物日志中为确认的事物

差异备份:

  • 是完整备份的补充
  • 备份上次完整备份后,数据变动的部分