WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院数据库MSSQL Server 使用视图控制用户对数据访问 阅读

使用视图控制用户对数据访问

 2007-11-11 05:56:51 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鎼痪褔鏌曟繝蹇曠窗闁煎壊浜滈—鍐偓锝庡墮娴犙勭箾閸喎鐏ユい鏇樺劦椤㈡瑩鎮℃惔銇帮拷
核心提示:问:我的Microsoft Access 2000应用程序由后端的sql server(WINDOWS平台上强大的数据库平台) 2000数据库写入数据,为防止Access的用户看到sql server(WINDOWS平台上强大的数据库平台) 2000表中的全部数据,使用视图控制用户对数据访问,我想使用一种只允许用户浏览

问:我的Microsoft Access 2000应用程序由后端的sql server(WINDOWS平台上强大的数据库平台) 2000数据库写入数据。为防止Access的用户看到sql server(WINDOWS平台上强大的数据库平台) 2000表中的全部数据,我想使用一种只允许用户浏览授权数据行的视图。可以创建一种限制用户访问sql server(WINDOWS平台上强大的数据库平台)数据的视图吗?

答:可以。如果每位用户以唯一的用户ID登录到Access,您就可以创建一种限制用户访问sql server(WINDOWS平台上强大的数据库平台)数据的视图。以下的示例语句就可以创建这样一种视图:

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限制用户的访问权。它要求您保存一份与数据表(mytable)中特定主键相匹配的用户名的表(authtable)。如果您的情况相对比较简单——您无需管理多个用户的行访问权,则您可以将userid列插入到数据表中,如下列代码所示:

CREATE VIEW v_data AS
  SELECT <column_list>
   FROM dbo.mytable AS a
   WHERE a.userid = suser_sname()

—Microsoft sql server(WINDOWS平台上强大的数据库平台) 开发团队

Tags:使用 视图 控制

编辑录入:coldstar [复制链接] [打 印]
赞助商链接