sqlserver如何给某一用户分配只能查看某一视

sqlserver如何给某一用户分配只能查看某一视,第1张

1,在sql server中选择好要 *** 作的数据

2,--当前数据库创建角色

exec sp_addrole 'seeview' --创建了一个数据库角色,名称为:[seeview]

3,--分配视图权限 GRANT SELECT ON veiw TO [角色]

--指定视图列表 指定seeview这个角色可以查看的视图表名称;也就是这个角色可以查看下面赋予这些视图信息,除此之外的所有的东西都看不到

GRANT SELECT ON v_viewname1 TO seeview

GRANT SELECT ON v_viewname2 TO seeview

4,--添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名'

exec sp_addlogin 'guest',''guest'','oa'

此处可能执行不了,要求密码强度,那就自己手工创建 我没执行成功

5,--添加只允许访问指定视图的用户到rCRM角色中: exec sp_adduser '登录名','用户名','角色'

exec sp_adduser 'guest','guest','seeview'

摘要

本文主要阐述了外科医疗信息管理系统的设计思路、实现过程和实现方法。最初,我们从系统面向的用户着手,了解不同用户的各种需求,从而分析得出系统应具备的功能,并依次设计系统的模块结构和功能联系。在分析用户需求时,我们同时分析了系统管理的对象——即系统要管理的数据,把这些数据按照功能分类形成表,完成了数据库的设计。后台程序中数据库的接口也是按数据表的结构来实现的。

根据教学信息管理的特点,系统采用浏览器/服务器(B/S)模式[1],运用了基于C#语言的ASPNET技术,以SQLSERVER 2005数据库作为后台数据库,使用Visual Studio 2005开发前台页面,实现了对外科医疗信息方便、快捷的管理,不仅提高了外科医疗信息管理的效率,而且为医院工作人员之间信息的交流提供了一个便捷的平台。

系统实现的功能模块主要有:系统管理员模块,医生管理模块,护士管理模块,科室秘书管理模块,手术中管理模块。系统把这些功能模块有机的组织起来,已经具备了较高的实用价值。

关键字:信息管理系统, ASPNET, C#

ABSTRACT

Something about how to design a Surgical Medical Management Information System that will be used in a hospital is mainly discussed in this paper Also, the process and technique for carrying out this system are described detailed At first, we make a survey about the requirements of the client who is the user of this system and analyze the system to see what function should be included Lastly we devise relations between different functions and work out modules of this project Based on analysis of the object to the system, we classify these data according to their function and complete designing of the database Interface of database in background program is done based on the structure of datasheet

According to Surgical Medical Management Information System, we decide that mold of this project should be B/S mold and use ASPNET that based on C# language The database we selected is SQL Server 2005 and the web is developed by Visual Studio 2005 in foreground So it is convenient and fast to run basis instruction information and the monitor can be implemented with great efficiency A convenient flat for communication between Staffs in the hospital also be provided

Primary functional molds in this project are for Administrators module, Doctor Management module, Nurses management module, Secretary of office management module and Operation management module Because these modules are organized as an organic whole this system has high utility

KEY WORDS: Information Management System, ASPNET, C#

目录

第一章 引言 1

第二章 系统需求分析 2

21 业务系统描述 2

211 业务流程分析 2

212 业务流程图 3

22 可行性分析 4

23MIS系统的目标 4

24 项目开发计划 5

第三章 概要设计 5

31 系统目的 5

32 系统构成图 6

33 子系统清单 8

34 系统ER图 8

35 人员职责 9

351系统管理员职责 9

352 医生职责 10

353 护士职责 10

354 科室秘书职责 10

36数据库设计 11

361 实体描述 11

362 联系描述 12

363 数据库实现 13

364 计算机系统配置方案的选择和设计 17

365 系统总体安全性、可靠性方案与措施 18

366 系统安全性方案和措施 18

367 可靠性方案与措施 19

第四章 详细设计 20

41代码设计 20

42 人机界面设计 20

43 输入设计 20

44 输出设计 22

45 模块处理过程 24

第五章 实施概况 25

51 实施环境和工具 25

511 计算机系统实施 25

52 实施环境与工具的比较选择 25

521 实施环境 25

522 几种工具的特点及比较 25

523 编程环境与工具 26

524 数据准备概况 27

53 系统测试概况 27

531 系统测试的基本原则 27

532 系统测试的方法 28

54 历史数据备份、数据恢复 28

541历史数据备份 29

542 数据恢复 29

55系统运行及维护概况 30

551 系统运行概况 30

552 系统维护概况 30

第六章 小结 32

61 系统功能和特点 32

62 软件开发过程的特点和体会 32

63系统评价及改进 33

参考文献 34

致 谢 35

英文资料原文 36

英文翻译中文 43

第一章 引言 随着社会的发展,人们对健康越来越关注,医院的业务不断增长,处理越来越复杂,简单的人工经营管理,已无法满足医院的需要, 成为医院发展的瓶颈, 人们对医疗服务的要求也越来越高。传统的手工记录管理模式,病人信息繁杂,服务效率严重下降, 人工 *** 作信息,流程容易漏、错信息,走错工作流程,人工记录效率低的问题无法避免,因此,如何提高服务水平、提高工作效率,成为迫待解决的问题。医院管理信息化不仅能提高医务人员的工作效率和医疗水平,而且能提高医院的服务质量和管理水平,因此,医院对管理信息系统有着强烈的需求。美国著名教授MorrisCollen于1988年曾著文为医院信息系统(HIS)下了如下定义:利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据交换的能力,并满足所有授权用户的功能需求。开发医院外科管理信息系统(MIS)的目标就是立足医院应用实际,着眼院未来发展,以强化医院外科部门管理,提高医疗质量,方便医院员工管理病人手术信息,提高医院的服务效率和服务质量,设计一套符合功能规范要求,安全稳定, *** 作简便的医院外科管理信息系统,为医院外科部门的管理提供一套全方位的解决方案。

第二章 系统需求分析 管理信息系统是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。管理信息系统它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下5点内容:

(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。

(2)完整、及时提供在管理及决策中需要的数据。

(3)利用指定的数据关系分析数据,客观预测未来。

(4)向各级管理机构提供不同详细程度的报告,缩短分析和解释的时间。

(5)用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。

21 业务系统描述 医院的外科医疗水平和服务质量是衡量一个医院标准,仅靠增加基础设施投入和脱离信息化的管理方法的改进,是不能从根本上提高医院部门的工作效率、服务质量和管理水平的。MIS的目的就是减轻业务劳动强度,工作职责合理配置,减少了差错,科学管理外科流程,节省人力,提高医院的财、物管理水平,工作效率,增加经济效益,方便医院职工对病人信息的控制,提高医院外科部门的服务效率和服务质量,提高医院的外科部门医疗质量和管理水平。所以,一个现代化的适应社会发展需要的医院外科部门,除了具备一流的医疗队伍、一流的服务设施之外,还应具备一流的管理信息系统。

文章出处:

很不错的网站,里面有很多免费的资料

开题报告:

题目列表:

不行就定做一个吧

定做的质量要好得多

它将冗余数据选择到一个游标中 并根据(LastName FirstName)来分组(在我们这个方案中) 然后打开游标然后循环地取出每一行 然后用与先前的取出的键值进行比较 如果这是第一次取出这个值 或者这个值不是冗余键 那么跳过这个记录然后取下一个 不然的话 这就是这个组中的冗余记录 所以删掉它.

让我们运行一下这个存储过程

BEGIN

DeleteDuplicates;

END;

/

SELECT LastName FirstName COUNT()

FROM Customers

GROUP BY LastName FirstName

HAVING COUNT() > ;

最后一个查询语句没有返回值 所以冗余数据没有了从表中取冗余数据的过程完全是由定义在csr_Duplicates 这个游标中的SQL语句来实现的 PL/SQl只是用来实现删除冗余数 那么能不能完全用SQL语句来实现呢?

二.SQL解决方案 使用RANK()删除冗余数据Oracle i分析函数RANK()来枚举每一个组中的元素 在我们的方案中我们应用这个方案 我们使用这个函数动态的把冗余数据连续的排列起来加上编号 组由Partintion by 这个语句来分开 然后用Order by 进行分组SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName

FirstName ORDER BY ID) SeqNumber

FROM Customers

ORDER BY LastName FirstName;

SQL

Listing Output of single SQL statement that uses RANK()

显示的是根据记录的条数的个数来显示尤其对于冗余数据

ID LASTNAME FIRSTNAME SEQNUMBER

Blake Becky

Blue Don

Bradley Tom

Chang Jim

Griffith David

Hill Larry

King Chuck

Krieger Jeff

Krieger Jeff

Krieger Jeff

Loney Julie

Lord Don

Mason Paul

Monroe John

Simon Michael

Simon Michael

Stone Tony

Stone Tony

Stone Tony

Stone Tony

Stone Tony

我们可以看一到 SeqNumber这一列中的数值 冗余数据是根据ID号由小到大进行的排序 所有的冗余数据的SqlNumber都大于一 所有的非冗余数据都等于一 所以我们取自己所需 删除那么没用的SELECT ID LastName FirstName

FROM

(SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName

FirstName ORDER BY ID) AS SeqNumber

FROM Customers)

WHERE SeqNumber > ;

SQL

Listing 冗余键的键值

有七行必须被删除

ID LASTNAME FIRSTNAME

Krieger Jeff

Krieger Jeff

Simon Michael

Stone Tony

Stone Tony

Stone Tony

Stone Tony

rows selected 这显示有七行需要删除 还是用上一个表我测试了一下这个代码 它用了77秒种就删除了所有的数据准备好了用Sql语句来删除冗余数据 版本一它执行了 秒

DELETE

FROM CUSTOMERS

WHERE ID IN

(SELECT ID

FROM

(SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName

FirstName ORDER BY ID) AS SeqNumber

FROM Customers)

WHERE SeqNumber > );

我们可以看到最后的两行语句对表中的数据进行了排序 这不是有效的 所以我们来优化一下最后一个查询语句 把Rank()函数应用到只含有冗余数据的组 而不是所有的列下面这个语句是比较有效率的 虽然它不像上一个查询那样精简SELECT ID LastName FirstName

FROM

(SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName

FirstName ORDER BY ID) AS SeqNumber

FROM

(SELECT ID LastName FirstName

FROM Customers

WHERE (LastName FirstName) IN (SELECT LastName FirstName

FROM Customers

GROUP BY LastName FirstName

HAVING COUNT() > )))

WHERE SeqNumber > ;

选择冗余数据只用了26秒钟 这样就提高了 %的性能 这样就提高了将这个作为子查询的删除查询的效率

DELETE

FROM Customers

WHERE ID IN

(SELECT ID

FROM

(SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName

FirstName ORDER BY ID) AS SeqNumber

FROM

(SELECT ID LastName FirstName

FROM Customers

WHERE (LastName FirstName) IN (SELECT LastName FirstName

FROM Customers

GROUP BY LastName FirstName

HAVING COUNT() > )))

WHERE SeqNumber > );

现在只用了 秒钟的就完成的上面的任务 比起上一个 秒 这是一个很大的进步 相比之下 存储过程用了 秒 这样存储过程有些慢了使用PL/SQL语句我们和我们以上的代码 会得到更好的更精确的代码 和提高你代码的执行效率 虽然对于从数据库中枚举数据PL/SQL对于Sql两者没有什么差别 但是对于数据的比较上 PL/SQL就比SQL要快很多 但是如果冗余数据量比较小的话 我们尽量使用SQL而不使用PL/SQL如果你的数据表没有主键的话 那么你可以参考其它技术

Rank()其它的方法

使用Rank()函数你可以对选择你所保留的数据 (或者是小ID的或者是大ID 的 就由RECDate这个列来决定这种情况下 你可以把REcdate加入到(Orderby )子句中 倒序或者正序

这是一种保留最大Id的一种解决方案

DELETE

FROM Customers

WHERE ID IN

(SELECT ID

FROM

(SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName FirstName ORDER BY RecDate DESC ID) AS SeqNumber

FROM

(SELECT ID LastName FirstName RecDate

FROM Customers

WHERE (LastName FirstName) IN (SELECT LastName FirstName

FROM Customers

GROUP BY LastName FirstName

HAVING COUNT() > )))

WHERE SeqNumber > );

这种技术保证了你可以控制每一个表中的保留的组 假设你有一个数据库 有一个促销或者有一个折扣信息 比如一个团体可以使用这种促销5次 或者个人可以使用这个折扣三次 为了指出要保留的组的个数 你可以在where 和having子句中进行设置 那么你将删除所有大于你

设置有数的冗余组

DELETE

FROM Customers

WHERE ID IN

(SELECT ID

FROM

(SELECT ID LastName FirstName RANK() OVER (PARTITION BY LastName

FirstName ORDER BY ID) AS SeqNumber

FROM

(SELECT ID LastName FirstName

FROM Customers

WHERE (LastName FirstName) IN (SELECT LastName FirstName

FROM Customers

GROUP BY LastName FirstName

HAVING COUNT() > )))

WHERE SeqNumber > );

As you can see using the RANK() function allows you to eliminate duplicates in a

single SQL statement and gives you more capabilities by extending the power of

your

queries

lishixinzhi/Article/program/Oracle/201311/18979

以上就是关于sqlserver如何给某一用户分配只能查看某一视全部的内容,包括:sqlserver如何给某一用户分配只能查看某一视、我想用C#和sqlserver做一个多表的数据库程序,比如学生信息管理,怎么做,要让我学会基本 *** 作、如何删除数据库中的冗余数据(2)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9459654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存