启用架构继承

默认情况下,在架构级别禁用继承的权限。如果为数据库启用了继承的权限,您可以使用 CREATE SCHEMAALTER SCHEMA 允许数据库的表和视图继承架构权限。除非显式排除,否则在架构上授予的权限将自动由其中的所有新表和视图继承。

有关哪些表和视图从哪些架构继承权限的信息,请参阅 INHERITING_OBJECTS

有关每个表或视图继承哪些权限的信息,请参阅 INHERITED_PRIVILEGES

启用架构权限继承对现有的表和视图不起作用。您必须使用 ALTER TABLEALTER VIEW 针对现有的表和视图显式设置架构继承。您还可以分别使用 CREATE TABLE/ALTER TABLECREATE VIEW/ALTER VIEW 显式排除表和视图继承架构权限。

您可以在架构创建期间使用以下语句启用架构权限继承:

=> CREATE SCHEMA s1 DEFAULT INCLUDE PRIVILEGES;

如果架构已经存在,您可以使用 ALTER SCHEMA 让所有新创建的表和视图继承架构的权限。在此语句之前在架构上创建的表和视图不受影响:

=> ALTER SCHEMA s1 DEFAULT INCLUDE PRIVILEGES;

在架构上启用继承的权限后,可以使用 GRANT(架构) 将架构权限授予用户和角色:


=> GRANT USAGE, CREATE, SELECT, INSERT ON SCHEMA S1 TO PUBLIC;
GRANT PRIVILEGE

另请参阅