10.如何实现只让用户U1拥有查询student表中“计算机系”学生的学号、姓名和年龄?假设角色role1下有100个数据库用户,现在希望其中99个用户具有查询v1视图的权限,还有一个用户U1不具有此权限。比较好的实现方法是什么?(10分)
时间: 2024-06-05 10:07:29 浏览: 4
对于第一个问题,你可以通过创建一个只有用户U1可以访问的视图来实现。具体步骤如下:
1. 创建一个包含“学号”、“姓名”和“年龄”这三个字段的视图,并且该视图只允许用户U1访问。
2. 在数据库中创建一个角色role1,并将除U1以外的所有用户赋予该角色。
3. 在视图上加上权限控制,让角色role1可以访问该视图。
通过这个方案,你可以保证只有用户U1能够查询包含“计算机系”学生的学号、姓名和年龄的视图。
对于第二个问题,一个较为简单的解决方案是创建一个新的角色role2,并在该角色下赋予所有用户查询v1视图的权限。然后将除U1以外的所有用户都加入到该角色中。最后,将U1从该角色中移除,以保证U1不具有查询v1视图的权限。这种方法简单直接,且易于管理。
相关问题
在root用户下,将全部数据库的select权限授予用户u1。 查看mysql.user表中u1的权限变化。
您可以按照以下步骤授予用户u1全部数据库的select权限:
1. 以root用户登录MySQL数据库。
2. 运行以下命令授予u1全部数据库的select权限:
```sql
GRANT SELECT ON *.* TO 'u1'@'%';
```
这条命令将授予用户u1在所有数据库上的所有表的select权限。
3. 运行以下命令刷新权限:
```sql
FLUSH PRIVILEGES;
```
这条命令将使MySQL重新加载权限表,以便使新的权限设置生效。
4. 运行以下命令查看mysql.user表中u1的权限变化:
```sql
SELECT * FROM mysql.user WHERE User='u1'\G
```
这条命令将以用户u1的权限为条件查询mysql.user表,并以垂直格式显示查询结果。
在查询结果中,您应该会看到用户u1的Select_priv列的值已经被设置为“Y”,这意味着用户u1已经被授予了全部数据库的select权限。
1.在示例数据库建立多个用户u1,u2,赋予u1查看和删除student表的权限,授予u2查看数学系学生视图的权限,然后验证它们是否具有真正的权限了。
首先,我们需要使用超级用户在数据库中创建多个用户u1和u2:
```
CREATE USER u1 WITH PASSWORD 'password1';
CREATE USER u2 WITH PASSWORD 'password2';
```
然后,我们需要授予u1查看和删除student表的权限,以及授予u2查看数学系学生视图的权限:
```
GRANT SELECT, DELETE ON student TO u1;
GRANT SELECT ON math_students_view TO u2;
```
现在,我们可以分别使用u1和u2的身份登录数据库并验证它们是否具有相应的权限。
以u1的身份登录数据库并尝试查看和删除student表:
```
psql -U u1 -d mydatabase
mydatabase=> SELECT * FROM student;
-- 这应该可以正常执行
mydatabase=> DELETE FROM student WHERE id = 1;
-- 这也应该可以正常执行
```
以u2的身份登录数据库并尝试查看数学系学生视图:
```
psql -U u2 -d mydatabase
mydatabase=> SELECT * FROM math_students_view;
-- 这应该可以正常执行
```
如果以上步骤都能够正常执行,就说明我们已经成功授予了相应的权限,并且u1和u2具有真正的权限了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)