当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 使用视图控制用户对数据访问

MSSQL
ACCESS改为SQL需要注意哪几个地方
把sql数据和access数据整合成一个数据集
SQL中Print语句的烦恼
关于SQL server中字段值为null的查询
得出SQL语句的执行时间的方法
如何在SqlServer与oracel中进行分页的讨论!
分页SQLServer存储过程
怎么清除sql server日志
Sql数据库MDF数据文件数据库恢复
SQL Server存储图像数据的策略与方法
sql server关于函数中如何使用Getdate()
将使用Access的论坛迁移到SqLServer中
ACCESS:跨数据库查询的SQL语句
SQLSERVER扩展存储过程XP_CMDSHELL的简单应用
在SQL Server中快速删除重复记录
调整SQLServer2000运行中数据库结构
SQL Server中查询时显示行号的方法
从数据库中随机抽N条记录
确保所有的非空(Non-NULL)值都是唯一的
使用视图控制用户对数据访问

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 65 ::
收藏到网摘: n/a

 

问:我的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 开发团队