您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

7.3. 权限

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

我们有以下几种权限: SELECT (读), INSERT (追加), UPDATE (写), DELETE RULE(规则) REFERENCES (外键), 和 TRIGGER . (参阅 GRANT 手册页获取更多详细的信息.) 修改或者删除一个对象的权限总是只有该对象的所有者才有. 要赋予权限,必需使用 GRANT 命令. 删除和修改一个对象的权限通常只属于所有者. 要赋权限,用 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;

表所有者的特殊权限(也就是说,做 DROP GRANT REVOKE 等等的权限)总是隐含给所有者的,并且不能赋予或者删除. 但是表所有者可以废除他的普通权限,比如给自己做一个只读的表,就象给 别人做一样.