GM Befehle gehen trotz eingestelltem RBAC nicht

Ich habe ein Problem mit meiner Core (rev. 3633f6213797 2013-10-15 03:35:49 -0700) bei mir gehen alle GM-Befehle nicht! RBAC ist eingerichtet!

TC>Account 5 (ADMIN) granted permissions:

  • 192 (Role: Sec Level Administrator)
  • 193 (Role: Sec Level Gamemaster)
  • 194 (Role: Sec Level Moderator)
  • 195 (Role: Sec Level Player)
  • 196 (Role: Administrator Commands)
  • 197 (Role: Gamemaster Commands)
  • 198 (Role: Moderator Commands)
  • 199 (Role: Player Commands)
    Account 5 (ADMIN) denied permissions:
    Empty List
    Account 5 (ADMIN) denied permissions:
  • 192 (Role: Sec Level Administrator)

GM-Level ist 3

Was ich mal nicht verstehe:

Account 5 (ADMIN) denied permissions:

  • 192 (Role: Sec Level Administrator)

Wieso denied permission obwohl GM-Stufe 3?

Aber es gehen dennoch keine Befehle!

Google und Co. haben nichts gebracht!

Hat jemand eine Lösung?

Grüßle Heras

PS: Neue Rev gezogen (TrinityCore rev. 4aee86627e00 2013-10-17 22:03:51 +0200 (master branch) (Unix, Release)) DB neu gemacht

Kein Erfolg! GM befehle gehen immer noch nicht!

Hast du die Accounts, die Admin oder GM Rechte haben sollen, in account_access hinzugefügt ?

Ja das habe ich getan(account wurde über die console erstellt)

Also ich hab mit jetzt auch grad eine neue Core und die DB Updates gezogen und bei mir geht immer noch alles.

Ich frag jetzt halt mal blöd: Die DB neu gemacht, heisst bei dir auch mit allen Updates ?

In der Tabelle account_access hab ich pro Admin account nur eine Zeile:

id, gmlevel, realmid

2, 3, -1

Und der Konsolenausdruck ist bei mir:

TC>Account 2 (ADMIN) granted permissions:
- 192 (Role: Sec Level Administrator)
Account 2 (ADMIN) denied permissions:
Empty List
Account 2 (ADMIN) denied permissions:
- 192 (Role: Sec Level Administrator)

Habe alle Updates eingespielt, aber dennoch geht kein GM-Befehl bei mir!

PS: Ich mag das neue RBAC system nicht wirklich das alte war besser

Ich habe genau das selbe Problem bei mir funktionieren auch keine GM Rechte mehr, ich bin da noch richtig am Verzweifeln

Ich habe in der Console eingegeben account set gmlevel XXX 3 -1 um den GameMaster account zu erstellten aber Ingame erkennt er diesen Account nicht als GameMaster, habe ich irgendeine Einstellung übersehen? Hab mir heute die Base an Logon und Character aufgespielt und hier vom Download von Trinity die 3.3.5a World gezogen. Hab auch alle Updates aufgespielt und es funktioniert bei mir auch nicht /emoticons/default_sad.png

Ich hab es gerade hin bekommen freuuu

Also ich hab die Base von Trinity an Auth benutz, hab bei Github nachgesehen das die neuste sql vor 15 Tagen erstellt wurde. Somit sind alle Updates hinfällig bis auf das vom 16.10.2013

Darauhin habe ich per Console den GM Account erstellt mit account set gmlevel DerAccountName 3-1

Danach habe ich unter rbac_account_permisson noch Daten hinzugefügt die Account ID und bei permissionID dann 774 eingetragen und den Server neugestartet und zack jetzt geht es /emoticons/default_smile.png

Ich hab das ganze vorher auch so gemacht aber alle Updates vom Ordner eingefügt und jetzt habe ich nur das vom 16.10.2013 eingefügt und jetzt geht es einwandfrei /emoticons/default_smile.png

Hallo,

ich komme mit diesem RBAC nicht zurecht.

Das es diese RBAC Gruppen nicht mehr gibt habe ich soweit mitbekommen.

Vielleicht kann mir das einer mal kurz erklären was ich wo eintragen muß, um ingame GM-Rechte zu haben.

mysql> select * from account_access
→ ;
±—±--------±--------+
| id | gmlevel | RealmID |
±—±--------±--------+
| 5 | 3 | -1 |
| 9 | 3 | -1 |
±—±--------±--------+

mysql> select * from rbac_account_permissions;
±----------±-------------±--------±--------+
| accountId | permissionId | granted | realmId |
±----------±-------------±--------±--------+
| 5 | 3 | 1 | -1 |
| 9 | 774 | 1 | -1 |
±----------±-------------±--------±--------+

Die 774 (wieso eigentlich 774? In ‘rbac_permissions’ steht das für “wp show”) da habe ich aufgrund dieses Beitrags eingetragen, vorher stand da 192.

TC> rbac list 192
TC>Permissions:

  • 192 (Role: Sec Level Administrator)
    Linked permissions:
  • 21 (Skip reset talents when used more than allowed check)
  • 42 (Allows to use CMSG_WORLD_TELEPORT opcode)
  • 43 (Allows to use CMSG_WHOIS opcode)
  • 193 (Role: Sec Level Gamemaster)
  • 196 (Role: Administrator Commands)

TC> rbac account list GAMINGO
TC>Account 9 (GAMINGO) granted permissions:

  • 192 (Role: Sec Level Administrator)
  • 774 (Command: wp show)
    Account 9 (GAMINGO) denied permissions:
    Empty List
    Account 9 (GAMINGO) inherited permissions by sec level 3:
  • 192 (Role: Sec Level Administrator)

Habe die 774 auch mal durch 193 ersetzt, keine Besserung

Egal welche Kombi ich verwende, ich bekomme ingame keine GM-Rechte.

Gruß

Gustav

Für deinen Account 5 z.B. müsste das so aussehen:

account_access

5 3 -1 (also so wie du schon hast, damit kommst du in den Level 3 der gmlevel)

rbac_account_permissions

ist bei mir leer

rbac_default_permissions (schon vordefiniert von TC)

Da sind die Level drin, z.B. 3 192 -1

Level 3 kriegt also alle Rechte mit 192

rbac_linked_permissions (schon vordefiniert von TC)

Da sind die u.a die Verbindungen für das Recht 192 drin. Das sind Einzelrechte und Rollen die dafür sorgen dass du auch die untergeordneten Rechte bekommst. Also der Admin ist auch ein GM und ein GM ist auch ein Moderator und ein Spieler.

Du braucht also nur einen Eintrag in account und account_access, den Rest kannst du erstmal von TC übernehmen.

Servus Magnuss,

hab’s so geändert wie du es hast:

mysql> select * from rbac_default_permissions;
±------±-------------±--------+
| secId | permissionId | realmId |
±------±-------------±--------+
| 3 | 192 | -1 |
| 2 | 193 | -1 |
| 1 | 194 | -1 |
| 0 | 195 | -1 |
±------±-------------±--------+
4 rows in set (0.00 sec)

mysql> select * from account_access;
±—±--------±--------+
| id | gmlevel | RealmID |
±—±--------±--------+
| 5 | 3 | -1 |
| 9 | 3 | -1 |
±—±--------±--------+
2 rows in set (0.02 sec)

mysql> select * from rbac_account_permissions;
Empty set (0.00 sec)

Geht immer noch nicht. Interessant finde ich, daß ich bei Kommandos wie ‘.quest’ oder ‘.gm’ zuvor die Meldung “incorrect syntax” erhalte.

Sobald ich was anhänge, wie z.b. ‘.gm list’ oder ‘.quest complete’ kommt wieder die Meldungen “no such subcommand”.

Noch wer eine Idee?

Gruß

Gustav

Hi,

ich habe jetzt mal aus der Tabelle “rbac_permissions” die id 371 (Command: gm") zu der Tabelle “rbac_linked_permissions” hinzugefügt.

Jetzt kann ich lediglich den “GM Mode” ein- und auschalten, mehr nicht. Dann scheint mein Problem zu sein, daß irgendwie das “Vererben” der Rechte nicht klappt …

rbac_linked_permissions ist wichtig und muss genau stimmen. Sie enthält bei mir 628 Einträge.

(Seltsamerweise 10 weniger als in rbac_permissions ^^. Muss ich mal schauen ob das stimmt.)

Mit .help siehst du die Liste, der für dich verfügbaren Befehle.

Da fehlen mir aber eine Menge:

mysql> select count() from rbac_linked_permissions;
±---------+
| count(
) |
±---------+
| 88 |
±---------+
1 row in set (0.00 sec)

oder auch hier:

Loaded 646 permission definitions, 88 linked permissions and 4 default permissions in 0 ms
Loading Page Texts…

Werde mir noch mal alle auth/*sql anschauen müssen, eventuell “auth” neu aufsetzen

OK, eine frisch erstellte ‘auth’ hat 621 Einträge:

mysql> select count() from rbac_linked_permissions;
±---------+
| count(
) |
±---------+
| 621 |
±---------+
1 row in set (0.00 sec)

Also wurden die Einträge in “rbac_linked_permissions” beim Importieren meiner alten Account-Daten verändert.

Dann bin ich wieder bei dem Problem, wie ich meine ganzen Account-Einträge und sämtliche Character-Einträge in eine frische Installation bekomme?

Werde mir mal das mysql-Kapitel mit dem “Mergen” anschauen :wink:

Magnuss, ich danke dir. Jetzt weiß ich genau wo das Problem liegt.

Jetzt hat’s geklappt.

Brauchte auch nicht ‘mergen’

Habe eine weitere Datenbank names ‘auth2’ angelegt und meine vorherige DB importiert, dann die Anzahl der Reihen je Tabelle verglichen:

Frische ‘auth’: (Hier nur die mit mindestens einer Zeile):

mysql> SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ‘auth’;
±-------------------------±-----------+
| table_name | table_rows |
±-------------------------±-----------+


| rbac_default_permissions | 4 |
| rbac_linked_permissions | 669 |
| rbac_permissions | 447 |
| realmcharacters | 0 |
| realmlist | 1 |

Meine alte “auth2” sieht so aus:

±-------------------------±-----------+
| table_name | table_rows |
±-------------------------±-----------+
| account | 6 |
| account_access | 3 |
| rbac_default_permissions | 4 |
| rbac_linked_permissions | 88 |
| rbac_permissions | 604 |
| realmcharacters | 6 |
| realmlist | 1 |
| uptime | 99 |

Meine befüllten Tabellen (außer rbac_*) exportiert und in ‘auth’ importiert.

Interessant finde ich, daß sich “rbac_linked_permissions” und “rbac_permissions” automatisch geändert haben.

| rbac_linked_permissions | 575 |
| rbac_permissions | 458 |

Nach Löschen von 1 von 3 GM-Account sah es so aus:

| rbac_linked_permissions | 575 |
| rbac_permissions | 599 |

Nach 2 von 3 so:

| rbac_linked_permissions | 575 |
| rbac_permissions | 729 |

Unterm Strich gehen jetzt die GM-Kommados, die ich haben wollte.

RBAC ist für mich aber immer noch eine Blackbox.

Besten Dank.

Gruß

Gustav

Also irgendwie geht bei mit deine Auflistung nicht auf. :slight_smile:

Jeder GM Befehl und andere Rechte erhalten in der Core von TC eine ID. Diese IDs sind in der Tabelle rbac_permissions gespeichert. Die Anzahl darf sich unter keinen Umständen ändern (ausser bei Update oder wenn du eigene Befehle in der Core schreibst.)

Bei mir sind dies 638 Datensätze. (3.3.5 core, ca. 1 Monat alt)

Ich hoffe mal, dass du die neuen DBs aus dem aktuellen GIT Repo ziehst und auch die Updates von der auth DB gemacht hast.

Hi,

die unterschiedlichen Werte liegen am SELECT /emoticons/default_wacko.png

I gab mehrmals das Kommando “SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ‘auth’;” hintereinander ein und bekam jeweils als Wert zurück:

[ul]
[li]| rbac_permissions | 1000 |[/li][li]| rbac_permissions | 588 |[/li][li]| rbac_permissions | 577 |[/li][li]| rbac_permissions | 588 |[/li][li]| rbac_permissions | 588 |[/li][li]| rbac_permissions | 870 |[/li][li]| rbac_permissions | 740 |[/li][li]| rbac_permissions | 1000 |[/li][li]…[/li][/ul]
Wenn ich direkt mit “select count(*) from rbac_permissions;” zähle, habe ich, wie du, konstant 638 Permissions.

Blöde Sache …