on my_dev=5
go
sp_logdevice my_db,my_dev
go
3.删除数据库
drop database 数据库名
删除设备前必须删除其上的所有数据库,删除设备的命令是:sp_dropdevice
三、事务日志
日志文件是用来记录数据库每一次修改活动的文件。sql server中的每一个数据库都有自己的日志文件,即系统表syslogs,也称为事务日志。事务日志是撤消事务和出现故障时恢复事务的依据。
在某些情况下,事务日志比数据本身更为重要。
什么是事务?
数据库的修改是以事务为单位进行的。一个事务就是一个操作序列,这些操作要么全做,要么全不做,它是一个不可分割的工作单位。任何一个事务具备如下特征。
(1)执行的原子性(atomic);
(2)保持数据的一致性(consistency);
(3)彼此的隔离性(isolation);
(4)作用的持久性(durability)。
上述事务的四个特征被称为事务的acid准则。
事务在运行过程中,sql server把事务开始、事务结束以及对数据库的插入、删除和更新等每一个操作作为一个日志记录存放到事务日志中。事务中的更新操作首先在数据库缓冲区(内存)中进行,缓冲区分别有用来记录操作活动的数据页(data page)和日志页(log page)。当运行到commit tran时,日志页首先从缓冲区写到磁盘上,而后数据页从缓冲区写到磁盘上,即遵循“先与日志(write_ahead log)”的原则,这样保证出现故障的情况下,通过日志能够得到最大限度的恢复。恢复必须撤消发生故障时还未提交的事务,已完成的事务若仍有未从缓冲区写到数据库设备中,还要重新运行该事务。
附:创建与装载数据库实例
use master
decl are @vedvno int
select @vdevno=max(convert(tinyint,substring(convert(binary(4),d.low),v.low,1)))+1
from master.dbo.sysdevices d,master.dbo.spt_values v
where v.type=’e’and v.number=3
declare @v_str char(2)
select @v_str=convert(char(2),@vdevno)
print @v_str
disk init
name=”yddata”,
physname=”d:\syb_data\yddata.dat”,
vdevno=@vdevno+1,
size=153600
disk init
name=”ydindex”,
physname=”d:\syb_data\ydindex.dat”,
vdevno=@vdevno+2,
size=102400
disk init
name=”ydlog”,
physname=”d:\syb_data\ydlog.dat”,
vdevno=@vdevno+3,
size=76800
create database ydmisdb
on yddata=300,ydindex=200
log on ydlog=150
use ydmisdb
execute sp_addsegment indexdev,ytmisdb,ytindex
execute sp_dropsegment “default”,ytmisdb,ytindex
execute sp_dropsegment system,ytmisdb,ytindex
use master
load database ydmisdb from ‘d:\yd_dump\ydmis_backup.dmp’
online database ydmisdb
第四讲 数据库安全性与用户管理
一、安全管理概述
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。sql server的安全管理是一种基于角色(role)的管理方法,位于不同权限层次(或角色)的用户具有不同的用户权限。
规定用户权限有三个因素:用户、数据对象和操作,即什么用户在哪些数据对象上可以执行什么操作。
访问sql server中数据的四道屏障:
(1)操作系统——操作系统登录
(2)sybase服务器——服务器登录
(3)sybase数据库——数据库用户登录
(4)数据库对象——对象授权
二、理解数据库角色
角色是权限的集合。
1.系统预定义角色
一个真正的数据库管理员应该是整个服务器及其数据库的拥有者,具有管理服务器及其数据库的所有权限。在一个大的系统中,数据库管理员往往不只由一人承担,而是将管理任务进行功能划分,每人提当不同的责任。系统预定义角色就是为适应这种要求而设计的。
●系统管理员(sa_role)
sa_role角色拥有执行与数据库具体应用无关的管理权限:
◇安装与更新sql server
◇管理服务器的物理存储
◇配置系统设置参数;
◇创建用户数据库;
◇授予sql server用户权限
◇┅┅
●系统安全管理员(sso_role)
sso_role用来实施安全上敏感的操作,执行有关安全性的任务:
◇建立服务器登录帐户;
◇管理口令;
◇授予除sa_role之外的任何角色;
◇管理审计系统;
◇┅┅
●操作员(oper_role)
oper_role执行全服务器范围的数据库操作,如备份与恢复任意数据库等:
◇转储数据库与日志
◇转载数据库与日志
◇┅┅
2.创建与使用自定义角色
(1)创建新的角色:create role
(2)赋予角色权限:grant
(3)设置登录帐户的角色权限:sp_role
格式:sp_role “grant”|”revoke”,角色名,登录帐号名
这里的“grant”|”revoke”是指对角色权限是授予还是撤消。
三、服务器的帐户管理
要想成为sybase系统的一个用户,首先必须拥有自己的登录帐户。通过这一帐户连同自己的口令向服务器注册后,才能使用sybase系统中的一些资源,每一个这样的登录帐户在系统中被赋予server级的标识suid。
1.添加登录
sp_addlogin 登录名,口令[,缺省的数据库]
如果不指定缺省的数据库,则该帐户的缺省数据库为master库。
2.更改登录属性
◇更改口令;
◇锁定帐户;
◇期限设置;
◇赋予角色。sybase
四、数据库用户管理
通过某一个帐户注册到服务器后,要想使用某一个数据库,必须成为该数据库的一个用户。通过建立登录与用户之间的联系来管理对数据库的访问。
1.组的概念
组(group)是数据库用户的集合。属于某个组的用户,他自动获得该组所拥有的权限。
sp_addgroup 组名
◇将一个用户加入某个组:(1)改变用户属性;(2)创建新用户时指定。
◇所有用户自动属于public组,即使这个用户已经属于其他组了。
2.创建新的用户
sp_adduser 登录名,用户名[,组名]
3.别名用户
sybase的别名机制可以使得多个帐户对应于同一个数据库用户,这样使不同的登录在数据库中拥有同样的权限。这在审计系统中是一种控制责任的一种手段。
sp_addalias 登录名,数据库中的用户名
别名——相当于给某个用户配一把别人的钥匙(登录)。
五、用户的权限管理
控制用户对数据库对象的访问,有两类权限:命令权限和对象权限。
1.命令权限
create database
create table
create view
create procedure
create rule
create default
命令权限授权与收权:
grant 命令权限组合 to 组名|用户名|角色
revoke 命令权限组合 from 组名|用户名|角色
2.对象权限
select
update
insert
delete
reference
execute
对象权限授权与收权:
grant 对象权限组合 on 数据库对象 to public|组名|用户名|角色
[with grant option]
revoke 对象权限组合 on 数据库对象 to public|组名|用户名|角色
from public public|组名|用户名|角色
[cascade]
授权与收权举例:
◇grant insert,delete on employee
to user_1,group_1
◇grant execute on pro_culculate
to public
◇grant select on employee(emp_id,emp_name)
to user_3