添加角色ins成员admins
exec sp_addrolemember 'ins','admins'
--删除角色ins成员admins
exec sp_droprolemember 'ins','admins'
--删除角色
drop role ins --必须先删除角色中所有成员
--删除用户
drop user admins
--删除登录账户
drop login administor
--==================================================================
查看数据库关于权限的信息
--查询当前数据库角色信息
exec sp_helprole 角色名
--提供有关每个数据库中的登录及相关用户的信息
exec sp_helplogins 登录名
--报告有关当前数据库中数据库级主体的信息。
exec sp_helpuser 当前数据库用户或角色名
--返回有关当前数据库中某个角色的成员的信息
exec sp_helprolemember 角色名
--返回SQLServer 固定服务器角色的列表
exec sp_helpsrvrole 固定服务器角色名
sql数据库批量分配权限
declare @sql varchar(max)=''
select @sql=@sql+'grant insert on '+ name + ' to admins '+CHAR(10) from sysobjects where name like 'a_%'
exec (@sql)
????如何创建windows用户登录????
备份和还原数据库
1、创建备份设备
sp_addumpdevice [ @devtype = ] 'device_type' --备份设备类型
, [@logicalname = ] 'logical_name' --备份设备逻辑名称
, [@physicalname = ] 'physical_name' –物理名称
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'd:\dump1.bak';
注:添加逻辑名为mydiskdump物理名为dump1.bak 的disk类型的备份设备
2、删除备份设备
sp_dropdevice [ @logicalname = ] 'device' --备份设备逻辑名称
[ , [ @delfile = ] 'delfile' ] --指定物理备份设备文件是否应删除
exec sp_dropdevice 'mydiskdump','delfile';
注:参数'delfile'不选时只将备份设备的逻辑名从数据库引擎中删除,并删除对应master..sysdevices表中的项。有参数时会同时删除对应的物理备份设备的文件。
查询数据库引擎中备份设备的信息
select * from master..sysdevices
select * from sys.backup_devices
备份数据库
backup database mail to disk=备份文件
backup database 数据库名 to 备份设备
数据恢复
数据库快照恢复
----------------------------------创建数据库DemoDB
create database DemoDB
on primary
(name='DemoDB_data',filename='d:\Demodb_log.mdf',size=5MB,maxsize=10MB)
log on
(name='DemoDB_log',filename='d:\Demodb_log.ldf',size=2MB,maxsize=10MB)
go
-------------------------------------在DemoDB创建数据表T1和T2
use DemoDB
create table T1(id int,name char(8),address char(13))
go
create table T2(id int,name char(8),address char(13))
go
---------------------------------------在DemoDB数据库的T1和T2插入数据
use DemoDB
Insert into T1 values(1,'jacky','suzhou')
Insert into T1 values(2,'Hellen','shanghai')
Insert into T2 values(1,'Tom','beijing')
Insert into T2 values(2,'Alice','hangzhou')
Go
--------------为DemoDB数据库创建数据库快照DemoDB_dbsnapshot_200510201600
create database DemoDB_dbsnapshot_200510201600
on
(name='DemoDB_data',filename='d:\DemoDB_dbsnapshot_201203091700.mdf')
as snapshot of DemoDB
go
----------------------------------------在数据库快照和数据库中查询T1和T2表
use DemoDB_dbsnapshot_200510201600
select * from dbo.T1
select * from dbo.T2
go
use DemoDB --在数据库中查看表T1和T2
select * from dbo.T1
select * from dbo.T2
go
---------------------------------------------在数据库中修改T1和T2
use DemoDB
update T1
set name='Tony' where id=1 --在DemoDB中更新数据
go
delete from T1 where id=2 --在DemoDB中删除数据
go
drop Table T2 --删除T2表
go
------------------------------在数据库快照和数据库中查询T1和T2表
use DemoDB_dbsnapshot_200510201600
select * from T1
select * from T2
go
use DemoDB
select * from T1
select * from T2
go
------------------使用数据库快照还原在DemoDB数据库的T1表误删除和更新的数据
update DemoDB.dbo.T1
set name=(select name from DemoDB_dbsnapshot_200510201600.dbo.T1 where id=1) where id=1
go
insert into DemoDB.dbo.T1
select * from DemoDB_dbsnapshot_200510201600.dbo.T1 where id=2
go
----------------------------使用数据库快照还原在DemoDB数据库误删除的T2表
use DemoDB
--复制进剪贴板中的创建T2的语句
go
select *into DemoDB.dbo.T2 fro