SQLserver学习day02 数据库用户管理 数据库的基本维护

来源:互联网 发布:淘宝网客户端 编辑:程序博客网 时间:2024/06/07 08:56

创建SQLserver数据库登录名

可以用来连接到SQLserver服务器
方法:在安全性的登录名选项下创建,创建的只能用来登陆数据库,而不能进行任何操作。

SQL语句创建登录名:

USE masterGO--创建登录名的语法 CREATE LOGIN <登录名> WITH PASSWORD=<'密码'>CREATE LOGIN LOSER WITH PASSWORD='123456'GO

创建数据库用户

作用:可以访问数据库

我们可以在自己的数据库的安全性选项里设置用户,也可以在创建登录名时选择用户映射选项来指定登录名能访问的数据库。

使用sql语句创建数据库用户

USE E_Market--选择数据库--创建数据库用户的语法 CREATE USER 用户名 FOR LOGIN 登录名CREATE USER LOSER FOR LOGIN LOSER--创建数据库用户GO

为用户赋予操作权限

在用户属性安全对象选择搜索,出现三个选项
(1)特定对象(选择某些特定的对象,比如某一张表)
(2)特定类型的所有对象(例如表类型)
(3)属于该架构的所有对象(数据库架构相当于数据库的容器)

然后进行权限的选择,有插入,删除等权限。未授予就不能进行相关操作。
这里写图片描述

使用sql语句为用户赋予权限

USE E_Market--选择数据库GO--赋予权限的语法 GRANT 权限 ON 表名 TO 用户名 GRANT SELECT,INSERT,UPDATE ON Table_1 TO LOSER--为loser用户赋予选择,插入,修改的权限GO--对权限回收的语法 REVOKE 权限 ON 表名 TO 用户名REVOKE UPDATE ON Table_1 TO LOSER--对权限进行回收GO

角色

在数据库中,为便于对用户及权限进行管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。也可以理解为事先定义好的一组权限。

服务器角色:
选择登录名的属性,然后选择服务器角色进行选择。
这里写图片描述

服务器角色

1.bulkadmin:这个角色可以运行BULK INSERT语句.该语句允许从文本文件中将数据导入到SQL Server2008数据库中,为需要执行大容量插入到数据库的域帐号而设计.

2.dbcreator:这个角色可以创建,更改,删除和还原任何数据库.不仅适合助理DBA角色,也可能适合开发人员角色.

3.diskadmin:这个角色用于管理磁盘文件,比如镜像数据库和添加备份设备.适合助理DBA

4.processadmin:SQL Server 2008可以同时多进程处理.这个角色可以结束进程(在SQL Server 2008中称为”删除”)

5.public:有两大特点:第一,初始状态时没有权限;第二,所有数据库用户都是它的成员

6.securityadmin:这个角色将管理登录名及其属性.可以授权,拒绝和撤销服务器级/数据库级权限.可以重置登录名和密码

7.serveradmin:这个角色可以更改服务器范围的配置选项和关闭服务器

8.setupadmin:为需要管理联接服务器和控制启动的存储过程的用户而设计.

9.sysadmin:这个角色有权在SQL Server 2008 中执行任何操作

数据库用户角色:

1.db_accessadmin:可以在数据库中添加和删除数据库用户, 组及角色

2.db_backupoperator:可以备份数据库

3.db_datareader 可以读取任何表中的数据

4.db_datawriter 可以添加、更改或删除所有表中的数据

5.db_ddladmin 可以添加、更改或删除数据库对象(即可以执行任何DDL语句)

6.db_denydatareader 不能读取任何表中的数据,但仍然可以通过存储过程来查看

7.db_denydatawriter 不能更改任何表中的数据,但仍然可以通过存储过程来修改

8.db_owner 执行任何操作

9.db_securityadmin 可以更改数据中的权限和角色

10.public:每个数据库用户都属于public角色.未对用户授权之前,该用户将被授予public角色的权限.该角色不能被删除

自定义数据库角色:在某个数据库的安全性下的角色选项进行新建,可以指定自己特有的权限。
这里写图片描述

数据库的所有者:dbo
(1)出现在每个数据库中
(2)登录名sa自动映射为数据库用户dbo。
可以这样理解,我们通过user1创建表table,未指定dbo,则通过ueser2登陆数据库时,就要通过user1.table来使用,如果他不知道是谁创建的,访问就会出现问题,而每个数据库都有一个默认的dbo用户,创建表时把所有者指给dbo,则不需要知道是哪个用户创建,直接使用dbo.table就可以了,让程序更加简单。

数据库的维护

数据库的状态

online:可以对数据库进行访问
offline:数据库无法使用
还有其他的状态,可以查询帮助文档。

sql语句查询数据库状态

--SELECT 要查询的列(这里是状态) FROM sys.databases WHERE NAME=数据库名SELECT state_desc FROM sys.databases WHERE NAME='E_Market'

函数查询数据库状态

--SELECT DATABASEPROPERTYEX('数据库名字''要查询的信息(这里是状态)')SELECT DATABASEPROPERTYEX('First','status')

脱机和联机

脱机:断开数据库跟所有人的连接,但数据库节点还存在脱机数据库的名称,不能执行任何有效的数据库操作。

联机:数据库处在可操作状态,可以进行权限内的任何操作。

选中数据库右键任务选择脱机或者联机。

联机状态下无法复制磁盘里的数据库文件,因为数据库文件已经打开。

分离和附加数据库

在选中的数据库上右键任务选择分离,勾打上,点击确定即可。
这里写图片描述

附加的时候只需要选中主数据文件即可。

脱机和分离的异同点
不同:脱机是将数据库断开连接,但数据库名称还存在在数据库节点中。
分离是将数据库从服务器中分离出去,数据库不存在。

收缩数据库

sqlserver先给数据库分配空间再使用数据库,可能会造成磁盘空间的浪费。

所以可以进行收缩数据库操作。
收缩数据库:删除数据库中每个文件已经分配但还没有使用的页,收缩后数据库空间自动减少。

收缩方式
自动收缩数据库
选中数据库,右键属性,在选项里面将自动收缩改为true。
这里写图片描述

手动收缩数据库

选中数据库右键任务选择收缩,有两个选项,收缩数据库和收缩文件
(1)收缩数据库
这里写图片描述

(2)收缩文件
可以选中对应的数据文件或者日志文件进行收缩。

数据库的备份与还原

这里写图片描述

备份数据库
这里写图片描述
还原数据库
这里写图片描述

进行差异备份的时候要先还原完整数据库备份,再还原差异备份。

1 0