授予用户user_13在test数据库中创建表的权限,并以user_13连接数据库,创建表A(A1 CHAR(10), A2 SMALLINT)。
时间: 2024-02-18 20:04:12 浏览: 73
好的,您可以使用以下 SQL 语句来实现您的需求:
```
-- 授予用户user_13在test数据库中创建表的权限
GRANT CREATE TABLE ON test TO user_13;
-- 连接数据库
\c test
-- 创建表A
CREATE TABLE A (
A1 CHAR(10),
A2 SMALLINT
);
```
请注意,以上 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;
```
如果报错并显示该用户没有权限,则授权收回成功。
阅读全文