使用视图控制用户对数据访问
2008-04-30 19:49
344 查看
问:我的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 开发团队
答:可以。如果每位用户以唯一的用户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 开发团队
相关文章推荐
- 使用交换机实现数据单向访问控制
- 使用 JavaScript 分析用户访问行为数据
- java 使用过滤器控制用户访问权限
- API gateway 中启用用户使用计划来控制访问策略
- 开始VS 2012中LightSwitch系列的第5部分:我可以使用用户权限来控制访问权吗?
- 使用 JavaScript 分析用户访问行为数据
- Linux下使用ACL命令实现控制用户的目录访问权限
- 在企业中使用的Silverlight:RAD数据通信用户友好的数据库访问
- 地磅称量系统之(37~39) 直接向数据库的数据表WtBill添加测试数据以及绑定用户控件和使用编码的方式控制dataGridView控件的每列属性和添加数据数据库的表中不存在的字段(非绑定列)
- JavaEE Tutorials (13) - 使用锁定控制对实体数据的并发访问
- 防止用户直接访问url的权限控制(使用过滤器)
- 用户、会话及事务控制-------并发使用数据环境
- 使用vsftp虚拟用户实现安全访问控制 推荐
- 把OU中的用户信息当作数据视图使用
- 使用VPD进行数据访问控制的示例
- ORACLE如何使用DBMS_METADATA.GET_DDL获取表,表空间,用户,视图等的DDL语句
- 使用InternalsVisibleToAttribute控制internal成员的访问
- 在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
- ASP中简易用户访问控制
- 使用Spring JDBC进行数据访问 (JdbcTemplate/NamedParameterJdbcTemplate/SimpleJdbcTemplate/SimpleJdbcCall/Stor)