問:我的microsoft access 2000應(yīng)用程序由后端的sql server 2000數(shù)據(jù)庫寫入數(shù)據(jù)。為防止access的用戶看到sql server 2000表中的全部數(shù)據(jù),我想使用一種只允許用戶瀏覽授權(quán)數(shù)據(jù)行的視圖。可以創(chuàng)建一種限制用戶訪問sql server數(shù)據(jù)的視圖嗎?
答:可以。如果每位用戶以唯一的用戶id登錄到access,您就可以創(chuàng)建一種限制用戶訪問sql server數(shù)據(jù)的視圖。以下的示例語句就可以創(chuàng)建這樣一種視圖:
create view v_data as
select <column_list>
from dbo.mytable as a
inner join dbo.authtable as b
on (a.pkey = b.datakey
and b.userid = suser_sname())
該視圖按userid限制用戶的訪問權(quán)。它要求您保存一份與數(shù)據(jù)表(mytable)中特定主鍵相匹配的用戶名的表(authtable)。如果您的情況相對比較簡單——您無需管理多個用戶的行訪問權(quán),則您可以將userid列插入到數(shù)據(jù)表中,如下列代碼所示:
create view v_data as
select <column_list>
from dbo.mytable as a
where a.userid = suser_sname()
—microsoft sql server 開發(fā)團隊
新聞熱點
疑難解答
圖片精選