SQL授予用户权限的语句Word格式文档下载.docx
- 文档编号:15879213
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:36
- 大小:33.16KB
SQL授予用户权限的语句Word格式文档下载.docx
《SQL授予用户权限的语句Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SQL授予用户权限的语句Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。
程序清单如下:
/*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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 授予 用户权限 语句