在SQL中1.在服务器下创建一个名为“user12”的登陆名,密码为“123456”。 2.将该登陆名“user12”注册为“XSCJGL”数据库的用户。 3.给“user12”用户赋予“student”和“sc”的查询、插入权限。 4.赋予“user12”创建表的权限。 5.使用“user12”身份登陆,并验证所获得的查询、插入、创建表权限。 6.利用管理员身份,禁止用户“user12”所获得的权限。(deny) 7.使用“user12”身份登陆,并验证所获得的查询、插入、创建表权限。 8.利用管理员身份,收回用户“user12”所获得的权限。(revoke) 9.使用“user12”身份登陆,并验证所获得的查询、插入、创建表权限
时间: 2023-09-04 10:07:11 浏览: 100
以下是SQL语句的实现过程:
1. 创建登陆名“user12”,密码为“123456”:
```sql
CREATE LOGIN user12 WITH PASSWORD = '123456';
```
2. 将“user12”注册为“XSCJGL”数据库的用户:
```sql
USE XSCJGL;
CREATE USER user12 FOR LOGIN user12;
```
3. 给“user12”用户赋予“student”和“sc”的查询、插入权限:
```sql
USE XSCJGL;
GRANT SELECT, INSERT ON student TO user12;
GRANT SELECT, INSERT ON sc TO user12;
```
4. 赋予“user12”创建表的权限:
```sql
USE XSCJGL;
GRANT CREATE TABLE TO user12;
```
5. 使用“user12”身份登陆,并验证所获得的权限:
```sql
USE XSCJGL;
EXECUTE AS USER = 'user12';
-- 验证查询权限
SELECT * FROM student;
SELECT * FROM sc;
-- 验证插入权限
INSERT INTO student VALUES ('1001', '张三', '男');
INSERT INTO sc VALUES ('1001', '语文', 80);
-- 验证创建表权限
CREATE TABLE test (id INT);
REVERT;
```
6. 利用管理员身份,禁止用户“user12”所获得的权限:
```sql
USE XSCJGL;
DENY SELECT, INSERT ON student TO user12;
DENY SELECT, INSERT ON sc TO user12;
DENY CREATE TABLE TO user12;
```
7. 使用“user12”身份登陆,并验证所获得的权限:
```sql
USE XSCJGL;
EXECUTE AS USER = 'user12';
-- 验证查询权限
SELECT * FROM student; -- 报错
SELECT * FROM sc; -- 报错
-- 验证插入权限
INSERT INTO student VALUES ('1002', '李四', '女'); -- 报错
INSERT INTO sc VALUES ('1002', '数学', 90); -- 报错
-- 验证创建表权限
CREATE TABLE test (id INT); -- 报错
REVERT;
```
8. 利用管理员身份,收回用户“user12”所获得的权限:
```sql
USE XSCJGL;
REVOKE SELECT, INSERT ON student TO user12;
REVOKE SELECT, INSERT ON sc TO user12;
REVOKE CREATE TABLE TO user12;
```
9. 使用“user12”身份登陆,并验证所获得的权限:
```sql
USE XSCJGL;
EXECUTE AS USER = 'user12';
-- 验证查询权限
SELECT * FROM student; -- 报错
SELECT * FROM sc; -- 报错
-- 验证插入权限
INSERT INTO student VALUES ('1003', '王五', '男'); -- 报错
INSERT INTO sc VALUES ('1003', '英语', 85); -- 报错
-- 验证创建表权限
CREATE TABLE test (id INT); -- 报错
REVERT;
```