把对表STUDENT的SELECT和INSERT权力授予user_12,并允许他再将此权限授予user_13。
时间: 2024-02-19 20:57:13 浏览: 136
好的,我再回答一次。可以使用以下SQL语句来实现:
```
GRANT SELECT, INSERT ON STUDENT TO user_12 WITH GRANT OPTION;
```
这条语句会将对表STUDENT的SELECT和INSERT权限授予用户user_12,并且使用GRANT OPTION选项允许他使用GRANT命令将此权限授予其他用户,如下所示:
```
GRANT SELECT, INSERT ON STUDENT TO user_13;
```
需要注意的是,授予权限需要具备足够的权限。如果当前用户没有授予权限的权限,则无法执行上述语句。
相关问题
5、把对表STUDENT的SELECT和INSERT权力授予user_12,并允许他再将此权限授予user_13。以user_13连接数据库,并执行select和insert语句验证此权限。
好的,您可以使用以下 SQL 语句来实现您的需求:
```
-- 授予user_12对表STUDENT的SELECT和INSERT权限
GRANT SELECT, INSERT ON STUDENT TO user_12 WITH GRANT OPTION;
-- 以user_12身份连接数据库,验证权限
-- 这里假设user_12已经连接到了数据库,可以直接执行SQL语句
-- 查看表STUDENT中的数据
SELECT * FROM STUDENT;
-- 向表STUDENT中插入数据
INSERT INTO STUDENT VALUES (1, '张三', 18);
-- 授予user_13对表STUDENT的SELECT和INSERT权限
GRANT SELECT, INSERT ON STUDENT TO user_13;
-- 以user_13身份连接数据库,验证权限
-- 这里假设user_13已经连接到了数据库,可以直接执行SQL语句
-- 查看表STUDENT中的数据
SELECT * FROM STUDENT;
-- 向表STUDENT中插入数据
INSERT INTO STUDENT VALUES (2, '李四', 20);
```
请注意,以上 SQL 语句假设您已经有了足够的权限来授予和撤销用户的权限,并且您已经知道了连接数据库的相关信息。如果您需要更详细的指导,请提供更多细节,我会尽力帮助您。
1、创建四个数据库用户,用户名和密码分别为: user_11 123456 user_12 123456 user_13 123456 user_14 123456 2、授予user_11对test数据库的所有权限并进行验证。 3、授予用户user_12对test数据库中course表中credit的更新权限。 4、授予用户user_13在test数据库中创建表的权限,并以user_13连接数据库,创建表A(A1 CHAR(10), A2 SMALLINT)。 5、把对表STUDENT的SELECT和INSERT权力授予user_12,并允许他再将此权限授予user_13。以user_13连接数据库,并执行select和insert语句验证此权限。 6、授予用户user_14对sc表DELETE权力,对grade字段具有UPDATE权力。以该用户连接数据库,并执行delete和update语句验证此权限。 7、把对第6题中对用户授予的所有权力收回。以该用户登录,并执行delete和update语句验证该用户是否还具有该权限。
1. 创建四个数据库用户并设置密码:
```
CREATE USER user_11 IDENTIFIED BY '123456';
CREATE USER user_12 IDENTIFIED BY '123456';
CREATE USER user_13 IDENTIFIED BY '123456';
CREATE USER user_14 IDENTIFIED BY '123456';
```
2. 授予user_11对test数据库的所有权限并验证:
```
GRANT ALL ON test.* TO user_11;
FLUSH PRIVILEGES;
```
验证授权是否成功:
```
mysql -u user_11 -p123456
USE test;
SHOW TABLES;
```
如果没有报错并显示数据库中的表,则授权成功。
3. 授予用户user_12对test数据库中course表中credit的更新权限:
```
GRANT UPDATE (credit) ON test.course TO user_12;
FLUSH PRIVILEGES;
```
4. 授予用户user_13在test数据库中创建表的权限,并以user_13连接数据库,创建表A(A1 CHAR(10), A2 SMALLINT):
```
GRANT CREATE ON test.* TO user_13;
FLUSH PRIVILEGES;
```
以user_13身份登录MySQL,并创建表A:
```
mysql -u user_13 -p123456
USE test;
CREATE TABLE A(A1 CHAR(10), A2 SMALLINT);
```
5. 把对表STUDENT的SELECT和INSERT权力授予user_12,并允许他再将此权限授予user_13。以user_13连接数据库,并执行select和insert语句验证此权限:
```
GRANT SELECT, INSERT ON test.STUDENT TO user_12 WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
以user_12身份登录MySQL,并授权给user_13:
```
mysql -u user_12 -p123456
GRANT SELECT, INSERT ON test.STUDENT TO user_13;
FLUSH PRIVILEGES;
```
以user_13身份登录MySQL,并验证权限:
```
mysql -u user_13 -p123456
USE test;
SELECT * FROM STUDENT;
INSERT INTO STUDENT(id, name, age, gender) VALUES (5, 'Tom', 18, 'M');
```
如果没有报错并成功执行查询和插入语句,则授权成功。
6. 授予用户user_14对sc表DELETE权力,对grade字段具有UPDATE权力。以该用户连接数据库,并执行delete和update语句验证此权限:
```
GRANT DELETE ON test.sc TO user_14;
GRANT UPDATE (grade) ON test.sc TO user_14;
FLUSH PRIVILEGES;
```
以user_14身份登录MySQL,并执行delete和update语句:
```
mysql -u user_14 -p123456
USE test;
DELETE FROM sc WHERE id=1;
UPDATE sc SET grade=90 WHERE id=2;
```
如果没有报错并成功删除和更新数据,则授权成功。
7. 收回第6题中对用户授予的所有权力,并验证该用户是否还具有该权限:
```
REVOKE ALL PRIVILEGES ON test.* FROM user_14;
FLUSH PRIVILEGES;
```
以user_14身份登录MySQL,并执行delete和update语句:
```
mysql -u user_14 -p123456
USE test;
DELETE FROM sc WHERE id=1;
UPDATE sc SET grade=90 WHERE id=2;
```
如果报错并显示该用户没有权限,则授权收回成功。
阅读全文