对表和同义词的权限

在符合 ANSI 的数据库中,如果您创建表,则仅有您作为该表的所有者拥有任何表级权限,直到您明确地将它们授予其他人为止。

然而,当您在符合 ANSI 的数据库中创建表时,PUBLIC 获得那个表的 Select、Insert、Delete、Under 和 Update 权限。(当设置为 yes 时,NODEFDAC 防止 PUBLIC 自动地获得这些表级权限。)

要允许某些用户访问,或仅访问不符合 ANSI 的数据库中的某些列,您必须明确地取消 PUBLIC 在缺省情况下获得的权限,然后仅授予您想要授予的权限。例如,这一系列语句将对整个 customer 表的权限授予用户 johnmary,但限定 PUBLIC 仅对那个表中的四列有 Select 权限:
REVOKE ALL ON customer FROM PUBLIC;
GRANT ALL ON customer TO john, mary;
GRANT SELECT (fname, lname, company, city) ON customer TO PUBLIC;