7.3. 权限

当创建一个数据库对象时,它属于一个用户.该用户就是执行创建 命令的那位.我们有一个还没有润色过的修改数据库对象所有者的接口. 缺省时,只有所有者(或者超级用户)可以对该对象做任何事情.为了 让别的用户也能用它,必须赋予那些用户权限

目前,我们有四种权限:select(读),insert(追加),和 update/delete(写),还有RULE(规则), 在表上创建重写规则的权限. 删除和修改一个对象的权限通常只属于所有者. 要赋权限,用GRANT命令.因此,如果 joe 是一个现存用户,而 accounts是一个现存表,那么可以这样赋予写权限

GRANT UPDATE ON accounts TO joe;
执行这条命令的用户必须是表的所有者.要给一个组赋权限,用
GRANT SELECT ON accounts TO GROUP staff;
特殊的“用户”名 PUBLIC可以用于 给系统中的每一个用户赋权限.把ALL放在 权限声明位置上表明赋予所有权限.

要废除一个权限,用 REVOKE 命令:

REVOKE ALL ON accounts FROM PUBLIC;
表的所有人的权限集总是隐含的,而且不能废除.(译注:只能删除)