Dieser Artikel vermittelt Ihnen relevante Inhalte zu Datenbankrollen. Sie können Benutzern mit denselben Berechtigungen Berechtigungen erteilen hoffe es hilft allen.
Empfohlenes Lernen:
MySQL-Video-TutorialVerwalten Sie die Berechtigungen der MySQL-Datenbank, fügen Sie einfach Berechtigungen direkt einem bestimmten Benutzer hinzu. Eine problematische Sache dabei ist, dass der Vorgang etwas überflüssig erscheint, wenn wir viele Benutzer haben und alle über dieselben Berechtigungen verfügen. Dann können wir Benutzern über Rollen Berechtigungen erteilen.
Geeignete Berechtigungseinstellungen können die Datensicherheit gewährleisten, was von entscheidender Bedeutung ist.
exercise: Jetzt müssen wir eine Manager -Rolle erstellen, können wir den folgenden Code verwenden:
CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...
Der Effekt ist wie unten gezeigt. Rolle erstellen Danach verfügt diese Rolle standardmäßig über keine Berechtigungen und wir müssen die Rolle autorisieren. Die Syntaxstruktur zum Erteilen von Rollenberechtigungen lautet:
CREATE ROLE 'manager'@'localhost';Beispiel: Gewähren Sie der Managerrolle die Berechtigung zum Anzeigen aller Tabellen in der Datenbank dbtest1
Rollenberechtigung anzeigen
Solange Sie eine Rolle erstellen, erteilt Ihnen das System automatisch die Berechtigung „NUTZUNG“, d. h. die Berechtigung, eine Verbindung zur Anmeldedatenbank herzustellen.
autorisiert ist, können Sie die Rolle autorisieren, die Berechtigungen beibehalten, Berechtigungen hinzufügen oder widerrufen. Fügen Sie Berechtigungen mit der GRANT-Anweisung hinzu, die mit der Rollenautorisierung identisch ist. Um eine Rolle oder Rollenberechtigungen zu widerrufen, verwenden Sie die REVOKE-Anweisung.
Das Ändern der Berechtigungen einer Rolle wirkt sich auf die Berechtigungen des Kontos aus, dem die Rolle gehört.
GRANT privileges ON table_name TO 'role_name'[@'host_name'];
Jetzt fügen wir dem Manager eine Löschberechtigung hinzu und nehmen diese Berechtigung dann zurück
Dang Wenn wir das Unternehmen wieder integrieren müssen, müssen wir möglicherweise zuvor erstellte Rollen bereinigen und einige Rollen löschen, die nicht mehr verwendet werden. Das Löschen eines Zeichens ist sehr einfach. Sie müssen lediglich die grammatikalische Struktur beherrschen.
REVOKE privileges ON tablename FROM 'rolename';
Beachten Sie, dass der Benutzer alle durch diese Rolle erhaltenen Berechtigungen verliert, wenn Sie eine Rolle löschen.
角色创建并授权后,要赋给用户并处于 激活状态 才能发挥作用。给用户添加角色可使用GRANT语句,语 法形式如下:
GRANT role [,role2,...] TO user [,user2,...];
在上述语句中,role代表角色,user代表用户。可将多个角色同时赋予多个用户,用逗号隔开即可。
例子:创建一个用户叫wang5 然后赋予角色manager,操作如下
用wang5登录并操作
赋予wang5角色manager 注意这个是通过root用户实现的
然后通过wang5登录查看数据库
此时还是看不到dbtest1,这是怎么回事呢?原来我们需要激活角色
方式1:使用set default role 命令激活角色
SET DEFAULT ROLE ALL TO 'kangshifu'@'localhost';
现在激活manager角色
然后再通过wang5用户登录查看
激活方式2:将activate_all_roles_on_login设置为ON
默认情况:
设置 SET GLOBAL activate_all_roles_on_login=ON;
这条 SQL 语句的意思是,对 所有角色永久激活 。运行这条语句之后,用户才真正拥有了赋予角色的所有 权限。
那么现在wang5已经被赋予manager角色,我们知道manager角色只是有select的权限。我们做如下操作
REVOKE role FROM user;
比如撤销 wang5的manager角色,通过root用户
再通过wang5登录看效果
推荐学习:mysql视频教程
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für MySQL-Datenbankrollen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!