創建資料庫設備:通過sybase安裝過程創建了master和sybsystemprocs,所有其他的資料庫設備則是通過 disk init 命令來創建.我們必須保證sybase的用戶對欲創建的設備的目錄具有讀寫許可權,否則就無法創建成功.先以sybase用戶登陸linux系統(資料庫是以sybase用戶安裝的,關於安裝和初試配置,請參照「redflag server 4搭建sybase」一文),進入sybase用戶的主目錄 /opt/sybase,創建目錄userdata;啟動資料庫服務,用sybase的isql連接資料庫,然後執行disk init 來完成此項操作. [sybase@sybase sybase]$ cd ase-12_5/install [sybase@sybase install]$ ./startserver //啟動sybase伺服器 [sybase@sybase sybase]$ cd [sybase@sybase sybase]$ mkdir userdata //創建目錄用於存放用戶資料庫 [sybase@sybase sybase]$ cd /ocs-12_5/bin [sybase@sybase bin]$ ./isql ╟u sa ╟s sybase //連接資料庫伺服器,我的數據//庫伺服器名稱為sybase,sa //密碼為空 [sybase@sybase bin]$ ./isql -u sa -s sybase //下面是回顯 保密字: msg 2401, level 11, state 2: server 'sybase': character set c is not available between client character set 'gb18030' and server character set 'iso_1'. no c will be done. msg 4017, level 16, state 1: server 'sybase': neither language name in login record 'chinese' nor language name in syslogins '<null>' is an official language name on this sql server. using server-wide default 'us_english' instead. //回顯到此,進入客戶操作模式 1> disk init //如果輸錯了,按「ctrl」 」back space」刪除 2> name=userdev, //命名最好便於識別為佳 3> physname=」/opt/sybase/userdata/userdev.dat」, //要用絕對路徑 4> size=」500m」 5> go 1> disk init //給日誌文件分配設備 2> name=logdev, 3> physname=」/opt/sybase/userdata/logdev.dat」, 4> size=」50m」 5> go
更改默認設備:如本文開頭部分所言,為了防止用戶資料庫被分配到資料庫系統主設備master上,應該在安裝完資料庫后修改默認設備—安裝完sybase ase后,master是唯一的默認設備.sybase建議,master設備只應該提供給系統資料庫而不是用戶資料庫.因此,對於用戶資料庫,我們應當單獨創建設備,並且把用戶設備設置成默認狀態.上一步我們已經創建了用戶設備「userdev」和「logdev」.其過程如下: 1> sp_diskdefault 『master』, 『defaultoff』 //取消master的默認設備資格 2> go 1> sp_diskdefault 『userdev』, 『default //設定uerdev為默認設備 2> go 1> sp_diskdefault 『logdev』, 『default //設定logdev為默認設備 2> go 在後面創建用戶資料庫的過程中,如果不指定資料庫設備,則該用戶資料庫理所當然地創建在默認設備.
創建資料庫:本資料庫創建在設備 userdev上,而在分開的設備(logdev)上創建資料庫日誌. 1> create database mydatabase //創建一個名為mydatabase的資料庫 2> on userdev = 「50m」 //資料庫的存儲空間為50m,資料庫設備 //是userdev,而不是master 3> log on logdev=」10m」 //日誌文件的存儲空間為10m4> go 也可以用命令 create database mydatabase 來創建用戶資料庫mydatabase,這個資料庫也會默認的創建在設備userdev上,日誌文件也創建在userdev,但不幸的的是,用戶創建的這個資料庫將只有2m的容量,恐怕這不是創建者所期望的.因此,不管是sybase還是我本人,都強烈建議使用上表的過程創建用戶資料庫,以便於這個資料庫可以滿足真實的應用場景.創建完資料庫后,我們很想知道創建的這個資料庫到底是怎麼一個狀況?通過系統存儲過程-sp_helpdb來獲得資料庫的各種信息.下面是我的某個sybase伺服器的範例: 1> sp_helpdb 2> go name db_size owner dbid created status ------------------------ ------------- ------------------------ ------ ------------------ ------------------------------------------------------------------------------------------------------ master 12.0 mb sa 1 jun 28, 2005 mixed log and data model 4.0 mb sa 3 jun 28, 2005 mixed log and data myfirstdatabase 110.0 mb sa 4 jul 08, 2005 no opti set secdatadb 98.0 mb sa 5 jul 08, 2005 no opti set sybsystemdb 4.0 mb sa 31513 jun 28, 2005 mixed log and data sybsystemprocs 120.0 mb sa 31514 jun 28, 2005 trunc log on chkpt, mixed log and data tempdb 4.0 mb sa 2 aug 13, 2005 select into/bulkcopy/pllsort, trunc log on chkpt, mixed log and data
(1 row affected) (return status = 0) 1> 在創建用戶資料庫時,應該預留足夠大的空間,以便能夠保留將來輸入的所有數據.但是也不要把資料庫定義得太大,以免在將來恢複數據時產生麻煩.究竟需要定義多大的空間才算合適,這需要資料庫管理員多次試驗才可以決定的.一個經驗是-低估一個資料庫的大小比高估要好,如果資料庫空間太小了,可以很容易的擴充資料庫的空間,如果空間過大,則非常麻煩.這裡,我們來修改一下前面創建的資料庫的空間大小,過程如下: 1> alter database mydatabase 2> on userdev=」1024m」 //由50m變成1g 3> log on logdev=」50m」 //由10m變成50m4> go 二、資料庫的管理 設置資料庫管理員密碼:在安裝完sybase ase資料庫后,資料庫管理員的默認管理員密碼為空,基於安全考慮,必須為資料庫管理員賬號設置密碼.先以賬號sybase登錄系統,然後啟動sybase資料庫,用isql連接資料庫伺服器(操作過程如前面「創建資料庫設備」一節),接著執行下面的操作: 1> sp_password null , dr5623h //設置新密碼為「dr5623h」2> go 在退出資料庫,下一次客戶端連接資料庫時,提示用戶輸入密碼.
用戶和授權: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表中添加紀錄. 接著,我們通過下面的事例來總結這3個步驟: [sybase@sybase sybase]$ cd ase-12_5/install [sybase@sybase install]$ ./startserver //啟動sybase伺服器 [sybase@sybase sybase]$ cd /ocs-12_5/bin [sybase@sybase bin]$ ./isql ╟u sa ╟s sybase ╟p dr5623h 1> sp_addlogin sery , d7#w6g , mydatabase 2> go 1> use mydatabase 2> go 1> sp_adduser sery 2> go 1> grant select ,insert, update on custom to sery 2> go 1> shutdown2> go [sybase@sybase bin]$ ./isql ╟u sery ╟s sybase ╟p d7#w6g //以用戶sery登錄數 //據庫mydatabase 1> 為了便於維護和管理資料庫,最好讓註冊名和資料庫用戶名使用相同的名稱.另外,註冊用戶的刪除、資料庫用戶的刪除以及授權的刪除都是比較簡單的了,請參照下面的操作: 1> revoke select ,insert, update on custom from sery 2> go 1> sp_dropuser sery 2> go 1> sp_droplogin sery2> go 需要注意的是,上述操作除用戶sery登錄資料庫外,都是在sa下完成的.