Sybase中的用戶分為兩種:SQL服務器用戶(登錄帳號)和數據庫用戶。 安裝完SQL服務器後,系統自動建立一個SQL服務器用戶sa,口令為空,即系統管理員,他對整個系統有操作權,其他用戶均由系統管理員建立。
在SQL Server中有三種特殊的用戶:系統管理員、用戶數據庫所有者(建立相應數據庫的數據庫用戶)DBO、一般用戶。系統管理員對整個系統有操作權;用戶數據庫所有者對他所建立的數據庫具有全部操作權利;一般用戶對給定的數據庫只有被授權的操作權限。
數據庫用戶一般可分為用戶組,任一數據庫在建立後即被賦予一個用戶組public。
1、建立SQL服務器用戶名(登錄帳號)
作為一個用戶,為了使用SQL Server,他必須在SQL Server上有一個SQL服務器用戶名(登錄帳號)。這個帳號是系統管理員通過sp_addlogin來增加的。
sp_addlogin 登錄名,口令,庫名,語言,全名
例:建立用戶zhang, 口令為zhangling(最低六位),全名為Zhang ling
1> sp_addlogin zhang,zhangling,null,null,Zhang ling
2> go
3> select * from syslogins
4> go
2、增加數據庫用戶名
同樣,為了使用SQL Server上的數據庫,他必須在數據庫中有一個用戶名,這個用戶名是數據庫所有者通過sp_adduser來增加的。數據庫用戶名不必和用戶帳戶一樣,而且在不同的數據庫中用戶名可以不同。多個用戶可以有相同的SQL Server帳戶。同樣,多個SQL Server帳戶可以有相同的數據庫名。
sp_adduser 登錄名,別名,組名
登錄名為用戶的SQL服務器登錄名;別名為用戶在數據庫中的用戶名;組名為用戶所屬的數據庫用戶組。
例:用戶zhang增加為tele114的用戶,別名為zhang1,屬於用戶組china
1>sp_addgroup china
2>go
1>sp_adduser zhang,zhang1,china
2>go
1> sp_helpuser
2> go
*例:刪除別名zhang1,用戶組china,登錄名zhang
1> use tele114
2> go
3> sp_dropuser zhang1
4> go
5> sp_helpuser
6> go
1>sp_dropgroup china
2>go
1> sp_helpgroup
2> go
3> use master
4> go
5> sp_droplogin zhang
6> go
7> select * from syslogins
8> go
3、數據庫操作授權
grant 命令序列 to 用戶名
A. 系統管理員可以授予其他用戶CREATE DATABASE的權限,使其他用戶可以成為數據庫所有者。
B. 數據庫所有者在他所擁有的數據庫中,可以授予其他用戶的權限有:
l CREATE TABLE ------------------- 建表
lCREATE DEFAULT ------------------ 建缺省
lCREATE RULE ------------------- 建規則
lCREATE PROCedure ------------------ 建存儲過程
lCREATE VIEW ------------------- 建視圖
lDUMP DATABASE ------------------- 備份數據庫
lDUMP TRANsaction ------------------ 備份日志
C. 數據庫對象所有者可以授予其他用戶的操作權限有:
l SELECT
l UPDATE
l INSERT
l EXECute
l DELETE
l REFERENCE
例:授予zhang1在數據庫tele114上建表,建視圖,建存儲過程;對表students有select,reference權;對name,native字段有update權。
1> use tele114
2> go
3> grant creat table,create procedure ,create vIEw to zhang1
4> go
5> grant select,reference on students to zhang1 with grant option 6> go
7> grant update on students(name,native) to zhang1
8> go
9> sp_helprotect
10> go