创建视图view3从sh_goods表中查询出id,name。,权限控制使用默认值,且默认安全控制由调用视图的用户权限来执行
时间: 2024-05-07 22:22:06 浏览: 121
可以使用以下SQL语句创建视图view3:
```
CREATE VIEW view3 AS
SELECT id, name
FROM sh_goods;
```
在创建视图时,默认情况下,视图继承了所引用表的安全控制和权限控制。因此,如果调用视图的用户有访问sh_goods表的权限,则可以使用视图view3访问sh_goods表的数据。如果调用视图的用户没有访问sh_goods表的权限,则无法使用视图view3访问sh_goods表的数据。
相关问题
创建视图view1从sh_goods表中查询出id,name。权限控制使用默认值,且默认安全控制由定义视图的用户权限来执
创建视图view1的SQL语句如下:
```
CREATE VIEW view1 AS
SELECT id, name
FROM sh_goods;
```
默认情况下,视图的权限和安全控制由创建视图的用户权限来执行。如果创建视图的用户有足够的权限查询sh_goods表中的id和name列,则所有用户都可以访问视图view1并查询这两列数据。如果创建视图的用户没有足够的权限,则其他用户将无法查询视图view1。
创建视图view2从sh_goods表中查询出id,name。权限控制为test用户,且默认安全控制由定义视图的用户权限来执行
首先,以定义视图的用户(假设为user1)登录数据库,并授权test用户访问sh_goods表:
```
GRANT SELECT ON sh_goods TO test;
```
然后,在user1的会话中创建视图view2,查询sh_goods表中的id和name:
```
CREATE VIEW view2 AS
SELECT id, name
FROM sh_goods;
```
默认情况下,视图是使用定义视图的用户的权限进行安全控制的。因此,test用户只能访问视图view2中的数据,而不能直接访问sh_goods表。
测试视图是否能正常查询数据,可以在test用户的会话中执行以下语句:
```
SELECT * FROM user1.view2;
```
如果返回了sh_goods表中的id和name字段,说明视图创建成功并且安全控制生效了。
阅读全文