2、授予user_11对test数据库的所有权限并进行验证。
时间: 2024-03-25 21:38:14 浏览: 12
好的,您可以使用以下命令来授予user_11对test数据库的所有权限:
```
GRANT ALL PRIVILEGES ON test.* TO 'user_11'@'localhost';
```
接着,您可以使用以下命令来验证是否已成功授权:
```
SHOW GRANTS FOR 'user_11'@'localhost';
```
该命令将显示用户user_11在test数据库上的所有权限。如果成功授权,您应该能够看到类似于以下内容的输出:
```
Grants for user_11@localhost
GRANT USAGE ON *.* TO 'user_11'@'localhost'
GRANT ALL PRIVILEGES ON `test`.* TO 'user_11'@'localhost'
```
请注意,为了使授权生效,您可能需要在授权后重新登录数据库。
相关问题
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;
```
如果报错并显示该用户没有权限,则授权收回成功。
假设在sql server生产环境中,我如何验证对public数据库角色授予某个权限后,所有的数据库用户都会具备此权限
在 SQL Server 生产环境中验证对 public 数据库角色授予某个权限后,所有的数据库用户都会具备此权限,可以按照以下步骤进行:
1. 首先,使用 GRANT 语句授予 public 数据库角色某个权限,例如 SELECT 权限:
```
GRANT SELECT TO public;
```
2. 然后,创建一个测试用户,并验证该用户是否具备该权限。例如,创建一个名为 testuser 的用户:
```
CREATE LOGIN testuser WITH PASSWORD = 'testpassword';
CREATE USER testuser FOR LOGIN testuser;
```
3. 接下来,使用该用户登录到数据库,并尝试执行一个 SELECT 查询。如果该用户能够执行 SELECT 查询,则说明该用户具备 SELECT 权限,也就是 public 数据库角色具备 SELECT 权限:
```
USE your_database_name;
GO
EXECUTE AS LOGIN = 'testuser';
GO
SELECT * FROM your_table_name;
GO
REVERT;
```
4. 最后,可以使用以下查询检查所有用户是否都具备该权限:
```
SELECT USER_NAME(principal_id) AS UserName,
dp.name AS PermissionName
FROM sys.database_permissions AS dp
JOIN sys.database_principals AS dp ON dp.principal_id = ddp.grantee_principal_id
WHERE dp.name = 'SELECT';
```
如果该查询返回的所有用户都具备 SELECT 权限,则说明对 public 数据库角色授予 SELECT 权限后,所有的数据库用户都具备该权限。