数码资讯
PostgreSQL教程(十二):角色与权限管理介绍
PostgreSQL数据库的访问权限通过角色管理。我们可以把一个角色看作一个数据库用户或一组数据库用户,角色可以有数据库对象,比如表和索引,也可以给其他用户提供其他角色来控制这些用户对对象的特权。 1。数据库角色: 1。创建角色: 复制代码代码如下所示: 创建角色role_name; 2。删除角色:
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
PostgreSQL数据库的访问权限通过角色管理。我们可以把一个角色看作一个数据库用户或一组数据库用户,角色可以有数据库对象,比如表和索引,也可以给其他用户提供其他角色来控制这些用户对对象的特权。
1。数据库角色:
1。创建角色:
复制代码代码如下所示:
创建角色role_name;
2。删除角色:
复制代码代码如下所示:
删除角色role_name;
三.查询的作用:
检查系统表pg_role,如:
复制代码代码如下所示:
选择从pg_role一下;
你也可以执行杜在PSQL的命令列出所有的角色。
两。角色属性:
数据库角色可以有一系列定义其权限的属性,以及与客户身份验证系统的交互。
1。登录权限:
只有具有登录属性的角色才能用于数据库连接。因此,我们可以将这个属性的角色看作登录用户,并创建两种方式。
复制代码代码如下所示:
创建角色名称登录密码为123456;
创建用户名密码为123456;
2。超级用户:
数据库的超级用户拥有数据库的所有权限。为安全起见,我们最好使用非超级用户来完成我们的正常工作。与创建一个普通用户,一个超级用户的创作必须为以下以超级用户的身份执行命令:
复制代码代码如下所示:
创建角色名超级用户;
三.创建数据库:
为了创建数据库,必须清楚地赋予角色创建数据库的属性。请看下面的命令:
复制代码代码如下所示:
创建角色的名字CREATEDB;
4。创建角色:
对于要创建更多角色的角色,必须显式地赋予属性创建角色,请参见下面的命令:
复制代码代码如下所示:
创建角色的名字CREATEROLE;
三、权限:
数据库对象创建时给业主,一般业主是执行对象的创建语句的作用。对于大多数类型对象,初始状态是只有所有者(或超级用户)可以做任何事情的对象。如果其他用户可以使用对象,适当权限必须给出。那里有很多不同种类的PostgreSQL内置权限,如选择、插入、更新、删除、规则、引用、触发、创造的,暂时的,临时的执行和。
我们可以使用授予命令来授予权限,例如:
复制代码代码如下所示:
授予帐户更新到乔;
对于上面的命令,意思是给的账目表更新权限的乔的作用。此外,我们也可以使用一个特殊的名字,公开,分配对象的权限,系统中的所有角色。写所有的许可声明的位置,说明一切权利是适用于对象给出目标的作用。
若要取消权限,请使用相应的撤消命令:
复制代码代码如下所示:
撤消所有公共帐户;
意思是帐户对象上的所有权限(all)都被撤消到所有角色(public)。
四。角色的成员:
In the user management of a system, a group is usually assigned to multiple users, so that only setting the group can be set up when permission is set, and when the permission is revoked, it is also removed from the group.In PostgreSQL, you first need to create a representative group role and then assign the role's membership permissions to an independent user role.
1。创建一个组角色,一般来说,它不应该具有登录属性,例如:
复制代码代码如下所示:
创建角色名;
2。使用授权和撤消命令添加和撤消权限:
复制代码代码如下所示:
格兰特group_role来降,…;
撤销group_role从角色,…;
角色成员可以使用两种方法来使用组角色的权限,例如:
1、每个成员都可以使用set角色命令临时将自己转换为组的成员。稍后创建的任何对象的所有者将属于组,而不是原来的登录用户。
2。具有继承属性的角色成员自动继承角色的权限。
请看下面的例子:
复制代码代码如下所示:
创建角色Joe LOGIN继承;继承是默认属性。
创建角色管理员noInherit;
创建角色轮noInherit;
给乔补助金;
授予管理轮;
现在我们根据乔的角色建立与数据库的连接。然后数据库会话都将权限角色乔和角色管理,这是因为乔继承了管理员的权限。但是,这是不同的,由于车轮的角色权限不可用在会议上,由于轮乔角色的成员是间接的作用,它是通过管理间接转移在角色和管理角色,可能包含noInherit属性,所以车轮作用将不会继承了乔。
轮角色的权限不会由乔继承。此时,我们可以在这个会话中执行以下命令:
复制代码代码如下所示:
设置角色管理;
执行后,会话只具有管理员角色的权限,并且不再包含给乔角色的特权。
复制代码代码如下所示:
设置角色轮;
经过一段时间后,如果仍希望将会话恢复到原始权限,可以使用以下恢复方式之一。
复制代码代码如下所示:
设置角色乔;
设置角色否;
复位的作用;
注:SET角色命令总是允许为当前登录角色选择直接或间接的组角色。因此,在切换到轮之前,不必成为管理员。
角色属性登录,超级用户,并createrole是特权,他们不继承其他数据库对象的权限。如果你需要它,你必须显示的属性时,调用设置角色的作用。例如,我们也可以给createdb角色和createrole权限管理角色,和然后连接到乔的角色数据库。此时,会话将不会立即拥有这些特权,只有在执行设置的角色管理命令时,当前会话才具有这些特权。
要删除一个组的作用,执行删除角色group_role命令。然而,删除角色后,它和它的成员的角色之间的关系将被立即吊销(成员角色本身不受影响)。但是,应该指出的是,任何对象都属于群体角色之前必须删除删除,或对象的所有者分配的其他角色。同时,还必须删除授予组角色的任何权限。
1。数据库角色:
1。创建角色:
复制代码代码如下所示:
创建角色role_name;
2。删除角色:
复制代码代码如下所示:
删除角色role_name;
三.查询的作用:
检查系统表pg_role,如:
复制代码代码如下所示:
选择从pg_role一下;
你也可以执行杜在PSQL的命令列出所有的角色。
两。角色属性:
数据库角色可以有一系列定义其权限的属性,以及与客户身份验证系统的交互。
1。登录权限:
只有具有登录属性的角色才能用于数据库连接。因此,我们可以将这个属性的角色看作登录用户,并创建两种方式。
复制代码代码如下所示:
创建角色名称登录密码为123456;
创建用户名密码为123456;
2。超级用户:
数据库的超级用户拥有数据库的所有权限。为安全起见,我们最好使用非超级用户来完成我们的正常工作。与创建一个普通用户,一个超级用户的创作必须为以下以超级用户的身份执行命令:
复制代码代码如下所示:
创建角色名超级用户;
三.创建数据库:
为了创建数据库,必须清楚地赋予角色创建数据库的属性。请看下面的命令:
复制代码代码如下所示:
创建角色的名字CREATEDB;
4。创建角色:
对于要创建更多角色的角色,必须显式地赋予属性创建角色,请参见下面的命令:
复制代码代码如下所示:
创建角色的名字CREATEROLE;
三、权限:
数据库对象创建时给业主,一般业主是执行对象的创建语句的作用。对于大多数类型对象,初始状态是只有所有者(或超级用户)可以做任何事情的对象。如果其他用户可以使用对象,适当权限必须给出。那里有很多不同种类的PostgreSQL内置权限,如选择、插入、更新、删除、规则、引用、触发、创造的,暂时的,临时的执行和。
我们可以使用授予命令来授予权限,例如:
复制代码代码如下所示:
授予帐户更新到乔;
对于上面的命令,意思是给的账目表更新权限的乔的作用。此外,我们也可以使用一个特殊的名字,公开,分配对象的权限,系统中的所有角色。写所有的许可声明的位置,说明一切权利是适用于对象给出目标的作用。
若要取消权限,请使用相应的撤消命令:
复制代码代码如下所示:
撤消所有公共帐户;
意思是帐户对象上的所有权限(all)都被撤消到所有角色(public)。
四。角色的成员:
In the user management of a system, a group is usually assigned to multiple users, so that only setting the group can be set up when permission is set, and when the permission is revoked, it is also removed from the group.In PostgreSQL, you first need to create a representative group role and then assign the role's membership permissions to an independent user role.
1。创建一个组角色,一般来说,它不应该具有登录属性,例如:
复制代码代码如下所示:
创建角色名;
2。使用授权和撤消命令添加和撤消权限:
复制代码代码如下所示:
格兰特group_role来降,…;
撤销group_role从角色,…;
角色成员可以使用两种方法来使用组角色的权限,例如:
1、每个成员都可以使用set角色命令临时将自己转换为组的成员。稍后创建的任何对象的所有者将属于组,而不是原来的登录用户。
2。具有继承属性的角色成员自动继承角色的权限。
请看下面的例子:
复制代码代码如下所示:
创建角色Joe LOGIN继承;继承是默认属性。
创建角色管理员noInherit;
创建角色轮noInherit;
给乔补助金;
授予管理轮;
现在我们根据乔的角色建立与数据库的连接。然后数据库会话都将权限角色乔和角色管理,这是因为乔继承了管理员的权限。但是,这是不同的,由于车轮的角色权限不可用在会议上,由于轮乔角色的成员是间接的作用,它是通过管理间接转移在角色和管理角色,可能包含noInherit属性,所以车轮作用将不会继承了乔。
轮角色的权限不会由乔继承。此时,我们可以在这个会话中执行以下命令:
复制代码代码如下所示:
设置角色管理;
执行后,会话只具有管理员角色的权限,并且不再包含给乔角色的特权。
复制代码代码如下所示:
设置角色轮;
经过一段时间后,如果仍希望将会话恢复到原始权限,可以使用以下恢复方式之一。
复制代码代码如下所示:
设置角色乔;
设置角色否;
复位的作用;
注:SET角色命令总是允许为当前登录角色选择直接或间接的组角色。因此,在切换到轮之前,不必成为管理员。
角色属性登录,超级用户,并createrole是特权,他们不继承其他数据库对象的权限。如果你需要它,你必须显示的属性时,调用设置角色的作用。例如,我们也可以给createdb角色和createrole权限管理角色,和然后连接到乔的角色数据库。此时,会话将不会立即拥有这些特权,只有在执行设置的角色管理命令时,当前会话才具有这些特权。
要删除一个组的作用,执行删除角色group_role命令。然而,删除角色后,它和它的成员的角色之间的关系将被立即吊销(成员角色本身不受影响)。但是,应该指出的是,任何对象都属于群体角色之前必须删除删除,或对象的所有者分配的其他角色。同时,还必须删除授予组角色的任何权限。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。