neuer nutzer hat keine berechtigungen

Allgemeine Diskussionen um die ERP Software AvERP

Moderator: SYNERPY

Antworten
checka
Beiträge: 52
Registriert: Fr Dez 01, 2006 11:09 am

neuer nutzer hat keine berechtigungen

Beitrag von checka »

Also: Ich habe einen neuen Benutzer angelegt (averpAdmin) dann mit dem nutzer sysdba den Nutzer im Averp Hauptprogramm angelegt. Gruppe Administrator - genau wie der sysdba.

An den User-Berechtigungen kann es auch nicht liegen, da habe ich nix gesetzt. LAut der Anzeige haben die User sysdba und mein neuer User komplett die gleichen Rechte.


Wenn ich aber eine bestellung machen will, kommt immer die Fehlermeldung
"No Permission for read/select on TABLE BARTEL". (335544352)


Hat da einer eine Idee?

Ciao
Checka
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Tabelle BARTEL??? Hmmm, da hat aber einer rumgebastelt, die stammt nämlich nicht von uns...

Also:
AvERP hat zwei ebenen der Rechtevergabe, einmal auf Datenbank-Ebene (hier sollte alles lesbar sein und das ist es hier nicht) und einmal auf Programm-Ebene (das ist die Zuordnung der Gruppe Administrator).

Abhilfe zu dem Problem schafft das Skript:

Code: Alles auswählen

GRANT ALL ON BARTEL TO PUBLIC;
Generell: Änderungen mitprotokollieren, beim nächsten Update ist sonst alles, von dem wir nicht wissen, weg. Tabellennamen wie "BARTEL" sind zwar schön AvERP-konform aber hier läuft man Gefahr, dass der Name von uns auch irgendwann verwendet wird. Besser ist ein Name wie BARTEL_XYZ. An dem "_XYZ" (oder "_ABC", etc.) kann man dann erkennen, was einem gehört und damit kommt es auch nicht zu Überschneidungen.
checka
Beiträge: 52
Registriert: Fr Dez 01, 2006 11:09 am

Beitrag von checka »

OK Das hat geklappt.

Jetzt ist es aber so:
Ich bekomme eine ähnliche Fehlermeldung, wenn ich versuche die kundenstammdaten (4.Seite) zu bearbeiten:

"ISC Fehlernummer: 335544352

ISC Fehlermeldung: no permission for Read/Select access to COLUMN BENUTZER"

Jetzt frage ich mich "nur" von welcher verdammten Tabelle redet der jetzt???

Ciao
Checka
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Was gibt denn diese Prozedur zurück?

Code: Alles auswählen

SET TERM ^ ;

CREATE PROCEDURE P_ADMIN_PUBLICRECHTE_CHECK
RETURNS (
    KEINPUBLIC VARCHAR(200))
AS
BEGIN
  /* Letzter Stand 05.12.2006 08:58:26 GK */

  /* Tabellen, Views, Proceduren ausgeben, wo keine PUBLIC-Rechte gesetzt sind */

  /* Protokollieren, dass Aktion hier durchgelaufen ist */
  IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
    INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_ADMIN_PUBLICRECHTE_CHECK');

  FOR SELECT cast('GRANT ALL ON '||F_LRTRIM(A.RDB$RELATION_NAME)||' TO PUBLIC;' as varchar(200)) AS "TABELLE"
  FROM RDB$RELATIONS A
  WHERE (A.RDB$VIEW_BLR IS NULL) AND (A.RDB$SYSTEM_FLAG = 0) AND (A.RDB$EXTERNAL_FILE IS NULL) AND
        A.RDB$RELATION_NAME NOT IN (SELECT B.RDB$RELATION_NAME FROM RDB$USER_PRIVILEGES B
                                    WHERE A.RDB$RELATION_NAME = B.RDB$RELATION_NAME AND B.RDB$USER = 'PUBLIC')
  UNION
  SELECT DISTINCT cast('GRANT ALL ON '||F_LRTRIM(A.RDB$VIEW_NAME)||' TO PUBLIC;' as varchar(200)) AS "TABELLE"
  FROM RDB$VIEW_RELATIONS A
  WHERE A.RDB$VIEW_NAME NOT IN (SELECT B.RDB$RELATION_NAME FROM RDB$USER_PRIVILEGES B
                                    WHERE A.RDB$VIEW_NAME = B.RDB$RELATION_NAME AND B.RDB$USER = 'PUBLIC')
  UNION
  SELECT DISTINCT cast('GRANT EXECUTE ON PROCEDURE '||F_LRTRIM(A.RDB$PROCEDURE_NAME)||' TO PUBLIC;' as varchar(200))  AS "TABELLE"
  FROM RDB$PROCEDURES A
  WHERE A.RDB$PROCEDURE_NAME NOT IN (SELECT B.RDB$RELATION_NAME FROM RDB$USER_PRIVILEGES B
                                    WHERE A.RDB$PROCEDURE_NAME = B.RDB$RELATION_NAME AND B.RDB$USER = 'PUBLIC')
  INTO :KEINPUBLIC DO
    SUSPEND;
END^

SET TERM ; ^

DESCRIBE PROCEDURE P_ADMIN_PUBLICRECHTE_CHECK
'Admin: Tabellen, Views, Proceduren ausgeben, wo keine PUBLIC-Rechte gesetzt sind';

GRANT INSERT ON A_WASMACHTIB TO PROCEDURE P_ADMIN_PUBLICRECHTE_CHECK;

GRANT EXECUTE ON PROCEDURE P_ADMIN_PUBLICRECHTE_CHECK TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE P_ADMIN_PUBLICRECHTE_CHECK TO SYSDBA;
Das Ergebnis kann man auch als Skript ausführen.

Wie immer: Verwendung auf eigene Gefahr.
checka
Beiträge: 52
Registriert: Fr Dez 01, 2006 11:09 am

Beitrag von checka »

Ich erhalte auch hierbei eine Fehlermeldung....

Nachdem ich das als SQL Skript ausführen wollte, kam Compiler Fehler bei "set TERM ^ ;"

Dann habe ich die Procedure selber angelegt.

Da kommt dann: "Unknown Column KEINPUBLIC"

ciao
Checka
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Bitte im IBExpert ausführen. Im SkriptExecutive, NICHT im SQL-Fenster. Die erste Zeile von der Ausgabe bitte löschen, da hier die Spaltenbezeichnung mit ausgegeben wird.
checka
Beiträge: 52
Registriert: Fr Dez 01, 2006 11:09 am

Beitrag von checka »

Ahhh ja... auch das hat jetzt geklappt....

Danke soweit erstmal.

Das Problem konnte ich damit auch lösen!

Ciao Checka
Antworten