/**********************
实验06.1 数据库的安全性
***********************/
1.创建数据库登录账号
CREATE LOGIN wl
WITH PASSWORD='Admin123',
DEFAULT_DATABASE = NetMusicShop
/*
2.管理数据库用户
创建数据库用户
*/
CREATE USER u1 FOR LOGIN wl
--3.系统管理员或Users表的属主将对Users表UserName和UserAddress列的查询权授予用户u1。
GRANT SELECT(UserName,UserAddress)
ON Users
TO u1
--4.统管理员或表的属主收回授予用户u1的对Users表的查询权。
REVOKE SELECT
ON Users
FROM u1
/**********************
实验06.2 数据库的完整性
**********************/
/*
【实验内容】
1.创建PRIMARY KEY约束(主键约束)
将Users表的“用户名”列(UserName)设置为主键
*/
USE NetMusicShop
ALTER TABLE Users DROP CONSTRAINT PK_Users
ALTER TABLE Users ADD CONSTRAINT PK_Users PRIMARY KEY(UserName)
/*
2.创建FOREIGN KEY(外键约束)
将Songs表的AlbumID列设置为外键FK_Songs_Album,该外键参照Album表中的主键AlbumID,
且违约时采用“级联更新”和“置空删除”的策略。
*/
ALTER TABLE Songs
ADD CONSTRAINT FK_Songs_Album
FOREIGN KEY(AlbumID) REFERENCES Album(AlbumID)
ON UPDATE CASCADE
ON DELETE SET NULL
ALTER TABLE Songs DROP CONSTRAINT FK_Songs_Album
/*
2.创建UNIQUE约束(唯一性约束)
为Songs表的“歌曲名”列(SongTitle)创建唯一性约束IX_SongTitle。
*/
ALTER TABLE Songs ADD CONSTRAINT IX_SongTitle UNIQUE(SongTitle)
ALTER TABLE Songs DROP CONSTRAINT IX_SongTitle
/*
3.创建CHECK约束(检查约束)
为Album表的“专辑语言”列(AlbumLanguage)创建一个检查约束CK_Language,
使得“专辑语言”的取值范围为“汉语普通话、粤语、英语、日语、韩语、多国、其他”之一。
*/
ALTER TABLE Album
ADD CONSTRAINT CK_Language
CHECK(AlbumLanguage IN('汉语普通话','粤语','英语','日语','韩语','多国','其他'))
ALTER TABLE Album DROP CONSTRAINT CK_Language
实验06.1 数据库的安全性
最新推荐文章于 2024-09-25 16:56:24 发布