Linux下创建Sybase数据库
在Linux环境中,Sybase数据库的创建有以下几步:
第一步:创建数据设备和日志设备
在数据库服务器中,每个数据库最好拥有自己独立的数据设备和日志设备,特别是要与master库的设备分开,这样有利于日后的管理。
首先用sa用户登录数据库:isql -U sa -P sapassword -S TESTDB //这里数据库服务器名称是TESTDB
然后用 disk init 命令,创建数据设备:
disk init name = 'mbss_data01',physname = '/u01/sybase15/product/data/mbss_data01.dat',size = '1024M', directio = true, skip_alloc = true     www.2cto.com  
disk init name = 'mbss_data02',physname = '/u01/sybase15/product/data/mbss_data02.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_data03',physname = '/u01/sybase15/product/data/mbss_data03.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_data04',physname = '/u01/sybase15/product/data/mbss_data04.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_data05',physname = '/u01/sybase15/product/data/mbss_data05.dat',size = '1024M', directio = true, skip_alloc = true
go
disk init name = 'mbss_index01',physname = '/u01/sybase15/product/data/mbss_index01.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_index02',physname = '/u01/sybase15/product/data/mbss_index02.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_index03',physname = '/u01/sybase15/product/data/mbss_index03.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_index04',physname = '/u01/sybase15/product/data/mbss_index04.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_index05',physname = '/u01/sybase15/product/data/mbss_index05.dat',size = '1024M', directio = true, skip_alloc = true
go
创建日志设备:
disk init name = 'mbss_log01',physname = '/u01/sybase15/product/data/mbss_log01.dat',size = '1024M', directio = true, skip_alloc = true
disk init name = 'mbss_log02',physname = '/u01/sybase15/product/data/mbss_log02.dat',size = '1024M', directio = true, skip_alloc = true
go
第二步:创建数据库
数据设备和日志设备创建完后,就可以基于这些设备来创建数据库了:
CREATE DATABASE mbss01
ON mbss_data01 = '1024M'
, mbss_data02 = '1024M'
, mbss_data03 = '1024M'
, mbss_data04 = '1024M'
, mbss_data05 = '1024M'
, mbss_index01 = '1024M'
, mbss_index02 = '1024M'
, mbss_index03 = '1024M'
, mbss_index04 = '1024M'
, mbss_index05 = '1024M'
LOG ON mbss_log01 = '1024M'
,mbss_log02 = '1024M' 
GO    www.2cto.com  
第三步:创建数据库的区段
创建区段,就可以对大数据量数据的表和索引进行分区管理,以增加数据的访问速度,所以创建数据的区段很必要。
use mbss01
go
exec sp_addsegment 'SEGMENT_PART01', 'mbss01', 'mbss_data01'
exec sp_addsegment 'SEGMENT_PART02', 'mbss01', 'mbss_data02'
exec sp_addsegment 'SEGMENT_PART03', 'mbss01', 'mbss_data03'
exec sp_addsegment 'SEGMENT_PART04', 'mbss01', 'mbss_data04'
exec sp_addsegment 'SEGMENT_PART05', 'mbss01', 'mbss_data05'
go
exec sp_addsegment 'SEGMENT_INDEX01', 'mbss01', 'mbss_index01'
exec sp_addsegment 'SEGMENT_INDEX02', 'mbss01', 'mbss_index02'
exec sp_addsegment 'SEGMENT_INDEX03', 'mbss01', 'mbss_index03'
exec sp_addsegment 'SEGMENT_INDEX04', 'mbss01', 'mbss_index04'
exec sp_addsegment 'SEGMENT_INDEX05', 'mbss01', 'mbss_index05'
go
第四步:数据库的管理,创建用户和授权
(1) 设置数据库管理员密码:在安装完sybase ASE数据库后,数据库管理员的默认管理员密码为空,基于安全考虑,必须为数据库管理员账号设置密码。
首先以数据库管理员用户登录:
isql -U sa -P -S TESTDB //此时数据库管理员的密码是空
用 sp_password 过程修改管理员密码:
sp_password null,sapassword,sa,1 //新密码 sapassword,修改密码账户 sa, 1 表示立刻修改
在退出数据库,下一次客户端连接数据库时,提示用户输入密码。
(2) 用户和授权
sybase ASE服务器提供一种严密的体系来保障数据的安全,并且使数据的保护级别达到非常精细的程度。在通常情况下,数据库服务器不是只给一个用户sa来使用,为了让数据库满足实际需求,需要在 sybase 数据库里添加账号/用户,为添加的用户分配适合的权限。这个操作分以下几步进行:
1、添加数据库系统的注册账号。执行存储过程sp_addlogin来完成数据库注册账号的添加,如 exec sp_addlogin sery , d7#W6g , mydatabase 表示添加一个注册账号sery,密码是“d7#W6g”,登录到默认数据库为“mydatabase”。这个操作执行完毕后,将在master数据库的syslogins表中增加一行纪录。添加数据库系统注册账号属于服务器级的安全,换句话说就是这个账号只能连接数据库服务器,但没有访问用户数据库的权力。
2、添加数据库用户。执行存储过程sp_adduser将用户直接添加到数据库,添加数据库用户属于数据库级的安全,这时才可以以用户的身份访问用户数据库。这个操作执行完毕后,将在允许访问的数据库的sysusers表中添加纪录。
3、授权。能够访问数据库但并不意味可以访问其中的数据,有时需要具备单个数据库对象的相应许可,才可以选取、更改数据库所属表中的数据信息或执行一个存储过程。这是属于对象访问级的安全。授权的格式为: grant  <权限列表> [on <表名> ] to <角色/用户>。这个操作执行完毕后,会向sysprotects表中添加纪录。    www.2cto.com  
为了便于维护和管理数据库,最好让注册名和数据库用户名使用相同的名称。
通过下面的实例,来说明用户添加和授权:
--添加数据库系统的注册账号
use mater  
go
sp_addlogin 'mbsslogin', 'mbsslogin', @defdb = 'mbss01', @deflanguage = 'us_english', @auth_mech = 'ANY'
go
--添加数据库用户
use mbss01
go
sp_adduser 'mbsslogin' , 'mbsslogin' , 'public'
go
--赋权
grant create table, create view, create procedure to mbsslogin
go
use master
go
(3) 注册用户的删除、数据库用户的删除以及授权的删除
--授权的删除
use mbss01
go
revoke create table, create view, create procedure to mbsslogin
go
--删除数据库用户
sp_dropuser 'mbsslogin'
go
--删除数据库系统的注册帐号
sp_droplogin 'mbsslogin'
go