keine Berechtigung Views anzulegen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anlegen
antworten
befehl
berechtigung
code
datenbank
erlaubnis
index
interpretation
kommando
leute
liste
logik
option
server
syntax
tabelle
update
url
ursache
-
Hallo Allerseits,
Ich habe gerade versucht, auf meiner DB einen View anzulegen. Dabei bekam ich eine Fehlermeldung, ich hätte keine Berechtigung, einen View anzulegen.
Ist das Anlegen von Views den Usern hier tatsächlich verwehrt oder habe ich was falsch gemacht?
Der Befehl ging i.W. so:
CREATE VIEW GuckMal AS SELECT * FROM Tabelle WHERE...;
Grüße
Euch
WS -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Auszug aus dem Ergebnis für die SQL-Abfrage SHOW GRANTS;:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES ON `{DATENBANK}`.* TO '{USERNAME}'@'%' WITH GRANT OPTION
CREATE VIEW ist nicht dabei, d.h. normale Nutzer haben keine Erlaubnis, Views anzulegen.
LG cookies -
wsgraphics schrieb:
nach dieser Logik wäre CREATE TABLE auch nicht zulässig, da nur 'CREATE' in der Liste steht...
Es geht aber nicht um Logik, sonder darum, welche Berechtigungen es gibt, und welche davon dir zugeordnet sind, siehe Tabelle hier:
http://dev.mysql.com/doc/refman/5.1/de/grant.html -
sagt mal Leute, lest Ihr eigentlich selber, was ihr anderen vorschlagt?
in der Liste steht nichts von einem View, im Übrigen gilt ein Grant auf das Create Kommando zunbächst einmal für alle Datenbankobjekte, es sei denn ich schränke es explizit ein.
Tut mir leid, aber beide Antworten sind nicht zielführend
-
wsgraphics schrieb:
sagt mal Leute, lest Ihr eigentlich selber, was ihr anderen vorschlagt?
in der Liste steht nichts von einem View, im Übrigen gilt ein Grant auf das Create Kommando zunbächst einmal für alle Datenbankobjekte, es sei denn ich schränke es explizit ein.
Tut mir leid, aber beide Antworten sind nicht zielführend
Hättest du die von burgi verlinkte Liste gelesen, wärst du auf folgendes gestoßen:
CREATE | Erlaubt die Verwendung von CREATE TABLE
Mit CREATE wird also nur das erstellen von Tabellen erlaubt ... -
...offenbar ist es so, dass ich keine Erlaunis habe, Views anzulegen
(warum eigentlich nicht?)
Aus den bislang erfolgten Beiträgen geht dies jedoch NICHT hervor.
Ich zitiere:
Der GRANT-Befehl:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES ON `{DATENBANK}`.* TO '{USERNAME}'@'%' WITH GRANT OPTION
darin steht eine allgemeine CREATE-Permission!!!
...und nun die GRANT-Syntax:
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] {tbl_name | * | *.* | db_name.*}
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
[REQUIRE
NONE |
[{SSL| X509}]
[CIPHER 'cipher' [AND]]
[ISSUER 'issuer' [AND]]
[SUBJECT 'subject']]
[WITH with_option [with_option] ...]
object_type =
TABLE
| FUNCTION
| PROCEDURE
hier müsste, siehe Syntax, in der ON-Klausel
Zitat: ON [object_type] {tbl_name | * | *.* | db_name.*}
ein object_type explizit vermerkt sein, wenn sich das GRANT nur darauf beziehen würde.
Davon steht aber in meinem GRANT nichts drin...
Im Übrigen habe ich genau dises Scenario auf meinem lokalen mysql Server nachgestellt:
Vergebe ich das allgemeine CREATE-Privileg, dann kann der betreffende Nutzer auch Views anlegen.
(probiert's doch selbst einmal, ich meine auf einem eigenen mySQL-Server...)
Nix für ungut, aber, dass ich keine Views anlegen darf hat ganz offenbar andere Ursachen, als die hier zitierten...
-
wsgraphics schrieb:
darin steht eine allgemeine CREATE-Permission!!!
Bitte nicht falsch verstehen, aber: kannst oder willst du den mit Quellenangaben hinterlegten Fakt nicht verstehen/akzeptieren?
Deine Interpretation, dass CREATE eine wie du sie bezeichnest "allgemeine" Permission sei, ist und bleibt falsch. Die Liste, die direkt in der Referenz von MySQL steht weist ausdrücklich aus, dass die Permission CREATE ausschließlich das Anlegen von Tabellen erlaubt, und sonst nichts.
Das habe ich dir im Link, damit du selber nachlesen kannst, gepostet, das hat auch mein Kollege aus der Technik so bestätigt. Das lässt keine Interpretation zu.
Also nochmal ganz deutlich: CREATE ist nicht allgemein, deswegen fehlt dir auch die Berechtigung, VIEWs anzulegen. -
Ich danke Euch für Eure Geduld und bitte um Nachsicht, falls ich dem Einen oder Anderen versehentlich auf die Füße getreten haben sollte...
Eines interessiert mich dennoch: Warum sind Views nicht erlaubt? die sind bei komplexeren Selects äusserst praktisch und brauchen kaum Ressourcen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage