首页 > 开发 > 综合 > 正文

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

2024-07-21 02:10:41
字体:
来源:转载
供稿:网友

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

答:可以。如果每位用户以唯一的用户id登录到access,您就可以创建一种限制用户访问sql server数据的视图。以下的示例语句就可以创建这样一种视图:

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 开发团队

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表