Server数据库控制视图页面的访问权限代码-SQL (server2012)

教程大全 2025-07-15 05:14:58 浏览

数据库 控制视图页面的访问权限 有利于数据库的安全性,本文我们主要介绍一个数据库控制视图页面的访问权限的源程序,实现的功能是:控制视图页面的访问权限,设置只有指定组的用户可以访问。接下来我们就介绍这个源程序,希望能够对您有所帮助。

源程序如下:

说明:写一个webpart,添加到需要控制权限的页面,如何当前用户不属于指定的组,则不允许用户访问当前页面。

代码如下:

这种方法的一个适用场景是一个列表做两个视图:

视图1(默认视图): 采用某个用户字段=[本人做过滤],普通用户可以查看到跟自己有关的数据。

视图2:显示所有记录。在视图2页面上放置这个权限控制webpart,设置只有某个组可以访问。

以上就是SQL Server数据库控制视图页面的访问权限代码的全部内容,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】


数据库SQL SEVER的 权限DRI是什么意思?

控制视图页面的代码

Direct reference inhreit 是否允许特定用户以外键方式引用该表 例如有A B两个表,其中A和B之间有外键引用关系 如果用户user具有对A表的select权限,那么DRI允许的话就对B表也有该权限 大概就是这个意思

什么是sql注入?

SQL是Structured Quevy Language(结构化查询语言)的缩写。 SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。 在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。 SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 ##1 二、SQL数据库数据体系结构 SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。 在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。 名称对称如^a^: ##1 三、SQL语言的组成 在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成: 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。 2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。 3.一个表或者是一个基本表或者是一个视图。 基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。 4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。 每个存储文件与外部存储上一个物理文件对应。 5.用户可以用SQL语句对视图和基本表进行查询等操作。 在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。 用户可以是应用程序,也可以是终端用户。 SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。 SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。 ##1 四、对数据库进行操作 SQL包括了所有对数据库的操作,主要是由4个部分组成: 1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。 2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。 3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。 4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。 下面我们将分别介绍: ##2 (一)数据定义 SQL数据定义功能包括定义数据库、基本表、索引和视图。 首先,让我们了解一下SQL所提供的基本数据类型:(如^b^) 1.数据库的建立与删除 (1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为: CREATE DATABASE 〔其它参数〕 其中,在系统中必须是唯一的,不能重复,不然将导致数据存取失误。 〔其它参数〕因具体数据库实现系统不同而异。 例:要建立项目管理数据库(xmmanage),其语句应为: CREATE DATABASE xmmanage (2) 数据库的删除:将数据库及其全部内容从系统中删除。 其语句格式为:DROP DATABASE 例:删除项目管理数据库(xmmanage),其语句应为: DROP DATABASE xmmanage 2.基本表的定义及变更 本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。 基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改

如何在一个grant语句里授权多个库

GRANT在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句。 语法语句权限:GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ]对象权限:GRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{ [ ( column [ ,...n ] ) ] ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON { stored_procedure | extended_procedure }| ON { user_defined_function }} TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ]参数ALL表示授予所有可用的权限。 对于语句权限,只有 sysadmin 角色成员可以使用 ALL。 对于对象权限,sysadmin 和 db_owner 角色成员和数据库对象所有者都可以使用 ALL。 statement是被授予权限的语句。 语句列表可以包括: CREATE DATABASECREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULECREATE TABLECREATE VIEWBACKUP DATABASEBACKUP LOG n一个占位符,表示此项可在逗号分隔的列表中重复。 TO指定安全帐户列表。 security_account是权限将应用的安全帐户。 安全帐户可以是: Microsoft® SQL Server™ 用户。 SQL Server 角色。 Microsoft Windows NT® 用户。 Windows NT 组。 当权限被授予一个 SQL Server 用户或 Windows NT 用户帐户,指定的 security_account 是权限能影响到的唯一帐户。 若权限被授予 SQL Server 角色或 Windows NT 组,权限可影响到当前数据库中该组或该角色成员的所有用户。 若组或角色和它们的成员之间存在权限冲突,最严格的权限 (DENY) 优先起作用。 security_account 必须在当前数据库中存在;不可将权限授予其它数据库中的用户、角色或组,除非已为该用户在当前数据库中创建或给予了访问权限。 两个特殊的安全帐户可用于 GRANT 语句。 授予 public 角色的权限可应用于数据库中的所有用户。 授予 guest 用户的权限可为所有在数据库中没有用户帐户的用户使用。 当授予某个 Windows NT 本地组或全局组权限时,请指定在其上定义该组的域名或计算机名,然后依次输入反斜线和组名。 但是,若要授予访问 Windows NT 内置本地组的权限,请指定 BUILTIN 而不是域名或计算机名。 PRIVILEGES是可以包含在符合 SQL-92 标准的语句中的可选关键字。 permission是当前授予的对象权限。 当在表、表值函数或视图上授予对象权限时,权限列表可以包括这些权限中的一个或多个:SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。 列列表可以与 SELECT 和 UPDATE 权限一起提供。 如果列列表未与 SELECT 和 UPDATE 权限一起提供,那么该权限应用于表、视图或表值函数中的所有列。 在存储过程上授予的对象权限只可以包括 EXECUTE。 在标量值函数上授予的对象权限可以包括 EXECUTE 和 REFERENCES。 为在 SELECT 语句中访问某个列,该列上需要有 SELECT 权限。 为使用 UPDATE 语句更新某个列,该列上需要有 UPDATE 权限。 为创建引用某个表的 FOREIGN KEY 约束,该表上需要有 REFERENCES 权限。 为使用引用某个对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW,该对象上需要有 REFERENCES 权限。 column是当前数据库中授予权限的列名。 table是当前数据库中授予权限的表名。 view是当前数据库中被授予权限的视图名。 stored_procedure是当前数据库中授予权限的存储过程名。 extended_procedure是当前数据库中授予权限的扩展存储过程名。 user_defined_function是当前数据库中授予权限的用户定义函数名。 WITH GRANT OPTION表示给予了 security_account 将指定的对象权限授予其它安全帐户的能力。 WITH GRANT OPTION 子句仅对对象权限有效。 AS {group | role}指当前数据库中有执行 GRANT 语句权力的安全帐户的可选名。 当对象上的权限被授予一个组或角色时使用 AS,对象权限需要进一步授予不是组或角色的成员的用户。 因为只有用户(而不是组或角色)可执行 GRANT 语句,组或角色的特定成员授予组或角色权力之下的对象的权限。 注释不允许有跨数据库权限;只能将当前数据库中的对象和语句的权限授予当前数据库中的用户。 如果用户需要另一个数据库中的对象的权限,请在该数据库中创建用户帐户,或者授权用户帐户访问该数据库以及当前数据库。 说明系统存储过程是例外,因为 EXECUTE 权限已经授予 public 角色,允许任何人去执行。 但是在执行系统存储过程后,将检查用户的角色成员资格。 如果此用户不是运行此存储过程所需要的适当的固定服务器或数据库角色的成员,则此存储过程不会继续执行。 REVOKE 语句可用于删除已授予的权限,DENY 语句可用于防止用户通过 GRANT 语句获得权限给他们的用户帐户。 授予权限删除所授予级别(用户、组或角色)上的已拒绝权限或已废除权限。 在另一级别(诸如包含此用户的组或角色)上被拒绝的同一权限优先起作用。 但是,虽然在另一级别上所废除的同一权限仍然适用,但它并不阻止用户访问该对象。 如果用户激活应用程序角色,对此用户通过该应用程序角色访问的任何对象,GRANT 的作用为空。 因此,尽管一个用户可能被授予了对当前数据库中的指定对象的访问权限,但是如果此用户使用对此对象无访问权限的应用程序角色,则在应用程序角色激活期间,此用户也没有此对象的访问权限。 sp_helprotect 系统存储过程报告在数据库对象或用户上的权限。 权限GRANT 权限依赖于所授予的语句权限和权限中涉及的对象。 sysadmin 角色中的成员可在任何数据库中授予任何权限。 对象所有者可为他们所拥有的对象授予权限。 db_owner 或 db_securityadmin 角色的成员可授予其数据库中任何语句或对象上的任何权限。 需要权限的语句是那些在数据库中增加对象,或对数据库执行管理活动的语句。 每条需要权限的语句都有一个特定的角色集,自动有权限执行此语句。 例如,sysadmin、db_owner 和 db_ddladmin 角色的成员默认有CREATE TABLE 权限。 sysadmin 和 db_owner 角色以及表的所有者默认有对表执行 SELECT 语句的权限。 有一些 Transact-SQL 语句不能被授予权限;执行这些语句要求有固定角色中的成员资格,此角色有默示执行特殊语句的权限。 例如,若要执行 SHUTDOWN 语句,用户必须添加为 serveradmin 角色中的成员。 dbcreator、processadmin、securityadmin 和 serveradmin 固定服务器角色的成员仅有权执行以下 Transact-SQL 语句。 语句 dbcreator processadmin securityadmin serveradmin bulkadmin ALTER DATABASE X CREATE DATABASE X BULK INSERT X DBCCX (1) DENY X (2)GRANT X (2)KILLXRECONFIGUREXRESTORE X REVOKE X (2)SHUTDOWNX(1) 有关更多信息,请参见 DBCC 语句。 (2) 仅适用于 CREATE DATABASE 语句。 说明diskadmin 和 setupadmin 固定服务器角色的成员没有权限执行任何 Transact-SQL 语句,他们只能执行特定的系统存储过程。 但是,sysadmin 固定服务器角色的成员有权限执行所有的 Transact-SQL 语句。 下面的固定数据库角色的成员有权限执行指定的 Transact-SQL 语句。 语句 db_owner db_datareader db_datawriter db_ddladmin db_backupoperator db_securityadmin ALTER DATABASE X X ALTER FUNCTION X X ALTER PROCEDURE X X ALTER TABLE X (1)X ALTER TRIGGER X X ALTER VIEW X (1)X BACKUP XXCHECKPOINT XXCREATE DEFAULT X X CREATE FUNCTION X X CREATE INDEX X (1)X CREATE PROCEDURE X X CREATE RULE X X CREATE TABLE X X CREATE TRIGGER X (1)X CREATE VIEW XX DBCC XX (2) DELETE X (1) XDENY X X DENY on object XDROP X (1)X EXECUTE X (1) GRANT X X GRANT on object X (1) INSERT X (1) XREADTEXT X (1)X REFERENCES X (1)X RESTORE XREVOKE X X REVOKE on object X (1) SELECT X (1)X SETUSER XTRUNCATE TABLE X (1)X UPDATE X (1) XUPDATE STATISTICS X (1) UPDATETEXT X (1) XWRITETEXT X (1) X(1) 权限也适用于对象所有者。 (2) 有关更多信息,请参见 DBCC 语句。 说明db_accessadmin 固定数据库角色的成员没有执行任何 Transact-SQL 语句的权限,只可执行特定的系统存储过程。 不需要权限即可执行的 Transact-SQL 语句有(已自动授予 public):BEGIN TRANSACTION COMMIT TRANSACTION PRINT RAISERROR ROLLBACK TRANSACTION SAVE TRANSACTION SET 有关执行系统存储过程所需权限的更多信息,请参见相应的系统存储过程。 示例A. 授予语句权限下面的示例给用户 Mary 和 John 以及 Windows NT 组 Corporate\BobJ 授予多个语句权限。 GRANT CREATE DATABASE, CREATE TABLETO Mary, John, [Corporate\BobJ]B. 在权限层次中授予对象权限下例显示权限的优先顺序。 首先,给 public 角色授予 SELECT 权限。 然后,将特定的权限授予用户 Mary、John 和 Tom。 于是这些用户就有了对 authors 表的所有权限。 USE pubsGOGRANT SELECTON authorsTO publicGO GRANT INSERT, UPDATE, DELETEON authorsTO Mary, John, TomGOC. 给 SQL Server 角色授予权限下面的示例将 CREATE TABLE 权限授予 Accounting 角色的所有成员。 GRANT CREATE TABLE TO AccountingD. 用 AS 选项授予权限用户 Jean 拥有表 PLAN_Data。 Jean 将表 Plan_Data 的 SELECT 权限授予 Accounting 角色(指定 WITH GRANT OPTION 子句)。 用户 Jill 是 Accounting 的成员,他要将表 Plan_Data 上的 SELECT 权限授予用户 Jack,Jack 不是 Accounting 的成员。 因为对表 Plan_Data 用 GRANT 语句授予其他用户 SELECT 权限的权限是授予 Accounting 角色而不是显式地授予 Jill,不能因为已授予 Accounting 角色中成员该权限,而使 Jill 能够授予表的权限。 Jill 必须用 AS 子句来获得 Accounting 角色的授予权限。 /* User Jean */GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION/* User Jill */GRANT SELECT ON Plan_Data TO Jack AS Accounting

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐