基于实验一建立的“图书读者数据库”(Book_Reader_DB)和实验二输入的部分虚拟数据,在SQL Server 2008查询分析器的Transact-SQL语句输入区输入Transact-SQL语句,然后点击“查询”菜单中的“执行”菜单项(或用F5快捷键),执行输入区的Transact-SQL语句。具体实验内容如下:
/假定系统有U1、U2、U3 、U4、U5、U6六个登录用户/
Exec sp_addlogin 'U1','123456'
Exec sp_addlogin 'U2','123456'
Exec sp_addlogin 'U3','123456'
Exec sp_addlogin 'U4','123456'
Exec sp_addlogin 'U5','123456'
Exec sp_addlogin 'U6','123456'
Exec sp_droplogin 'U1'
Exec sp_droplogin 'U2'
Exec sp_droplogin 'U3'
Exec sp_droplogin 'U4'
Exec sp_droplogin 'U5'
Exec sp_droplogin 'U6'
/**使其成为当前数据库的合法用户**/
Exec sp_grantdbaccess 'U1'
Exec sp_grantdbaccess 'U2'
Exec sp_grantdbaccess 'U3'
Exec sp_grantdbaccess 'U4'
Exec sp_grantdbaccess 'U5'
Exec sp_grantdbaccess 'U6'
/**授予对自己数据库的所有权限**/
Exec sp_addrolemember 'db_owner','U1'
/**试将查询图书表的权限由管理员授权给U1**/
use Book_Reader_DB
go
Grant select on Book to U1 with grant option grant select Book to U2
Grant select on Book to U1
/**以U1用户的身份重新登录系统后,再把权限授予给U2**/
Grant select on Book to U2
/**系统管理员把插入数据给借阅表的权限授予给U3**/
Grant insert on Borrow to U3
/**系统管理员把添加图书数据的权限授予给U4**/
Grant insert on Book to U4
/**系统管理员把修改读者数据信息的权限授予给U5**/
Grant Update on Reader to U5
/**将U1访问图书表的权限收回**/
Revoke select on Book from U1
USE mydb
GO
--1. 新建测试用户
--1.1 添加登录用户和密码
EXEC sp_addlogin N'tony','123'
--1.2 使其成为当前数据库的合法用户
EXEC sp_grantdbaccess N'tony'
--2.设置操作授权
--2.1 授予对自己数据库的所有权限
EXEC sp_addrolemember N'db_owner', N'tony'
--2.2 以下是设置具体操作权限
--授予tony对所有用户表的操作权限
GRANT SELECT,INSERT,UPDATE,DELETE TO tony
--授予tony SELECT,UPDATE到具体的表
GRANT SELECT,UPDATE ON tb TO tony
--授予tony SELECT,UPDATE到具体的表和列
GRANT SELECT,UPDATE ON tb(id,col) TO tony
--禁止tony对所有用户表的操作权限
DENY SELECT,INSERT,UPDATE,DELETE TO tony
--禁止tony SELECT,UPDATE到具体的表
DENY SELECT,UPDATE ON tb TO tony
--禁止tony SELECT,UPDATE到具体的表和列
DENY SELECT,UPDATE ON tb(id,col) TO tony
--删除tony 对所有用户表的授权信息
REVOKE SELECT,INSERT,UPDATE,DELETE TO tony
--授予tony对具有创建表、视图、存储过程等的操作权限
GRANT CREATE TABLE,CREATE VIEW,CREATE PROC TO tony
--禁止tony对具有创建表、视图、存储过程等的操作权限
DENY CREATE TABLE,CREATE VIEW,CREATE PROC TO tony
--删除tony对具有创建表、视图、存储过程等的授权信息
REVOKE CREATE TABLE,CREATE VIEW,CREATE PROC TO tony
GO
--注:更多相关授权信息参考后面的附表中“数据库权限”列。
--3. 删除测试用户
EXEC sp_revokedbaccess N'tony' --移除用户对数据库的访问权限
EXEC sp_droplogin N'tony' --删除登录用户