SQL授予用户权限的语句Word格式文档下载.docx

上传人:b****4 文档编号:15879213 上传时间:2022-11-16 格式:DOCX 页数:36 大小:33.16KB
下载 相关 举报
SQL授予用户权限的语句Word格式文档下载.docx_第1页
第1页 / 共36页
SQL授予用户权限的语句Word格式文档下载.docx_第2页
第2页 / 共36页
SQL授予用户权限的语句Word格式文档下载.docx_第3页
第3页 / 共36页
SQL授予用户权限的语句Word格式文档下载.docx_第4页
第4页 / 共36页
SQL授予用户权限的语句Word格式文档下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

SQL授予用户权限的语句Word格式文档下载.docx

《SQL授予用户权限的语句Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SQL授予用户权限的语句Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。

SQL授予用户权限的语句Word格式文档下载.docx

程序清单如下:

/*T表(教师基本情况表)的结构为T(TNO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编号,姓名,性别,年龄,职称,工资,系别。

TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的编号,课程编号。

UPDATETSETSAL=SAL+100

WHERETNOIN

(SELECTT.TNOFROMT,TC

WHERET.TNO=TC.TNOANDTC.CNO='

C5'

/*通过连接查询找到讲授C5课程的教师编号。

•下面是删除一行记录的例子。

例3-14删除张益琳教师的记录。

DELETEFROMTWHERETN=’张益琳’

•例3-16删除李明同学选课的记录。

DELETEFROMSCWHERESNO=

(SELECTSNOFROMSWHERESN=’李明’)

三、数据控制语言

•数据控制语言(DCL)是用来设置或更改数据库用户或角色权限的语句,包括GRANT,DENY,REVOKE等语句。

在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行数据控制语言。

3.1语句权限与角色的授予

•SQL语言使用GRANT语句为用户授予语句权限的语法格式为:

GRANT<

语句权限>

|<

角色>

[,<

]…

TO<

用户名>

|PUBLIC[,<

[WITHADMINOPTION]

•其语义为:

将指定的语句权限授予指定的用户或角色。

其中:

(1)PULBIC代表数据库中的全部用户;

(2)WITHADMINOPTION为可选项,指定后则允许被授权的用户将指定的系统特权或角色再授予其他用户或角色。

•例3-17 给用户Mary和John以及WindowsNT组Corporate\BobJ授予多个语句权限。

GRANTCREATEDATABASE,CREATETABLE

TOMary,John,[Corporate\BobJ]

•例3-18为用户ZhangYiLin授予CREATETABLE的语句权限。

GRANTCREATETABLE

TOZhangYiLin

•同语句权限的授予类似,SQL语言使用GRANT语句为用户授予对象权限,其语法格式为:

GRANTALL|<

对象权限>

[(列名[,列名]…)][,<

]…ON<

对象名>

[WITHADMINOPTION]

将指定的操作对象的对象权限授予指定的用户或角色。

(1)ALL代表所有的对象权限。

(2)列名用于指定要授权的数据库对象的一列或多列。

如果不指定列名,被授权的用户将在数据库对象的所有列上均拥有指定的特权。

实际上,只有当授予INSERT、UPDATE权限时才需指定列名。

(3)ON子句用于指定要授予对象权限的数据库对象名,可以是基本表名、视图名等。

(4)WITHADMINOPTION为可选项,指定后则允许被授权的用户将权限再授予其他用户或角色。

•例3-19 在权限层次中授予对象权限。

首先,给所有用户授予SELECT权限,然后,将特定的权限授予用户Mary,John和Tom。

GRANTSELECT

ONs

TOpublic

GO

GRANTINSERT,UPDATE,DELETE

TOMary,John,Tom

GO

•例3-20将查询T表和修改教师职称的权限授予USER3,并允许将此权限授予其他用户。

GRANTSELECT,UPDATE(PROF)

ONTTOUSER3

WITHADMINOPTION

•上例中,USER3具有此对象权限,并可使用GRANT命令给其他用户授权,如下例,USER3将此权限授予USER4:

ONT

TOUSER4

数据库管理员可以使用REVOKE语句收回语句权限,其语法格式为:

REVOKE<

FROM<

•例:

收回用户ZHANGYILIN所拥有的CREATETABLE的语句权限。

REVOKECREATETABLE

FROMZHANGYILIN

所有授予出去的权力在必要时都可以由数据库管理员和授权者收回,收回对象权限仍然使用REVOKE语句,其语法格式为:

•例3-21收回用户USER1对C表的查询权限。

REVOKESELECT

ONC

FROMUSER1

•例3-22收回用户USER3查询T表和修改教师职称的权限。

REVOKESELECT,UPDATE(PROF)

ONT

FROMUSER3

•在上例中,USER3将对T表的权限授予了USER4,在收回USER3对T表的权限的同时,系统会自动收回USER4对T表的权限。

•例3-23 首先从public角色中收回SELECT权限,然后,收回用户Mary,John和Tom的特定权限。

USEpubs

GO

REVOKESELECTONsFROMpublic

REVOKEINSERT,UPDATE,DELETE

ONs

FROMMary,John,Tom

•DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。

•否定语句权限的语法形式为:

DENYALL|<

•否定对象权限的语法形式为:

•例3-24 首先给public角色授予SELECT权限,然后,拒绝用户Mary,John和Tom的特定权限。

USEpubs

DENYSELECT,INSERT,UPDATE,DELETE

TOMary,John,Tom

四、系统存储过程

系统存储过程的部分示例如下:

•sp_addtype:

用于定义一个用户定义数据类型;

•sp_configure:

用于管理服务器配置选项设置;

•xp_sendmail:

用于发送电子邮件或寻呼信息;

•sp_stored_procedures:

用于返回当前数据库中的存储过程的清单;

•sp_help:

用于显示参数清单和其数据类型;

•sp_depends:

用于显示存储过程依据的对象或者依据存储过程的对象;

•sp_helptext:

用于显示存储过程的定义文本;

•sp_rename:

用于修改当前数据库中用户对象的名称。

五、变量

•变量是一种语言中必不可少的组成部分。

Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。

•1.局部变量

局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。

局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令定义后才可以使用。

•定义局部变量的语法形式如下:

DECLAER{@local_variabledata_type}[…n]

•其中,参数@local_variable用于指定局部变量的名称,变量名必须以符号@开头,并且局部变量名必须符合SQLServer的命名规则。

参数data_type用于设置局部变量的数据类型及其大小。

data_type可以是任何由系统提供的或用户定义的数据类型。

但是,局部变量不能是text,ntext或image数据类型。

•使用DECLARE命令声明并创建局部变量之后,会将其初始值设为NULL,如果想要设定局部变量的值,必须使用SELECT命令或者SET命令。

其语法形式为:

SET{@local_variable=expression}或者SELECT{@local_variable=expression}[,...n]

•其中,参数@local_variable是给其赋值并声明的局部变量,参数expression是任何有效的SQLServer表达式。

•例3-26 创建一个@myvar变量,然后将一个字符串值放在变量中,最后输出@myvar变量的值。

DECLARE@myvarchar(20)

select@myvar='

Thisisatest'

SELECT@myvar

•例3-27 通过查询给变量赋值。

USEadventureworks

DECLARE@rowsint

SET@rows=(SELECTCOUNT(*)FROMhumanresources.employee)

•2.全局变量

除了局部变量之外,SQLServer系统本身还提供了一些全局变量。

全局变量是SQLServer系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。

全局变量通常存储一些SQLServer的配置设定值和统计数据。

用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。

在使用全局变量时应该注意以下几点:

(1)全局变量不是由用户的程序定义的,它们是在服务器级定义的。

(2)用户只能使用预先定义的全局变量。

(3)引用全局变量时,必须以标记符“@@”开头。

(4)局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。

•例3-29 显示到当前日期和时间为止试图登录SQLServ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1