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
作者 haojinghua