您好,登錄后才能下訂單哦!
在數(shù)據(jù)庫(kù)開發(fā)中,經(jīng)常要設(shè)置用戶對(duì)數(shù)據(jù)庫(kù)的操作權(quán)限,通常有以下2種辦法:
1、在數(shù)據(jù)庫(kù)中,建立一個(gè)權(quán)限表,記錄每個(gè)用戶對(duì)相應(yīng)模塊(界面)的操作權(quán)限,然后在程序中使用。
我看到的一些公司的數(shù)據(jù)庫(kù)開發(fā)(用友也是這樣實(shí)現(xiàn))就用這種方式。
2、直接在SQL SERVER中建立數(shù)據(jù)庫(kù)用戶,配置每個(gè)用戶對(duì)數(shù)據(jù)表的操作權(quán)限。
在這里我主要講述第2種方式,可能使用到的SQL語(yǔ)句,直接配置數(shù)據(jù)表的權(quán)限,然后通過SQL語(yǔ)句返回用戶對(duì)表的操作權(quán)限,可以在應(yīng)用程序中使用。
select * from sys.sysusers where name=[name] --查看數(shù)據(jù)庫(kù)用戶的信息
select * from sys.syslogins where name=[name] --查看登錄用戶的信息
create login [loginName] with password='password' --創(chuàng)建登錄名,并設(shè)置密碼
alter login [old_loginName] with name=[new_name] --修改登錄名
alter login [loginName] with password='[new password]' --修改密碼
drop login [loginName] --刪除登錄名
create user [db user] for login [login name] --創(chuàng)建用戶(必須要指定登錄名)
alter user [old db user] with name=[new db user] --修改用戶
sp_addrole [role_name] --添加數(shù)據(jù)庫(kù)角色
deny connect sql to [db user] --是否允許用戶連接到數(shù)據(jù)庫(kù)引擎grant
alter login [login name] enable|disable --允許或禁止登錄名
deny|grant connect to [db user] --禁止或授權(quán)用戶訪問數(shù)據(jù)庫(kù)
alter role [old_role_name] with name=[new_role_name] --更改角色名稱
查詢登錄名是否有連接到數(shù)據(jù)庫(kù)引擎的權(quán)限
SELECT state_desc from sys.server_permissions perm join sys.server_principals pri
on perm.grantee_principal_id=pri.principal_id where pri.name='[login name]'
查詢登錄用戶是否禁止或啟動(dòng)
select is_disabled from sys.server_principals
where name='[login name]'
查詢用戶是否能連接到數(shù)據(jù)庫(kù)的權(quán)限
select permission_name from sys.database_permissions
where class=0 and grantee_principal_id=DATABASE_PRINCIPAL_ID('[db user]')
查詢用戶對(duì)表的權(quán)限
select sysp.type collate database_default,permission_name,state_desc,obj.name
from sys.database_permissions sysp
join sys.all_objects obj on obj.object_id=sysp.major_id
where sysp.grantee_principal_id=database_principal_id('db user') and obj.name='[table name]'
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。