Mailinglisten-Archive |
Patrick,
Es ist zwar das FILE-Recht, aber dieses Recht gibt es nicht auf der Ebene
von einzelnen Tabellen.
mysql> grant file on db.tbl to user_(at)_host identified by 'password';
gibt schon eine Fehlermeldung:
ERROR 1144: Illegal GRANT/REVOKE command. Please consult the manual which
privileges can be used.
Besser läuft
mysql> grant create,select on db.tbl to user_(at)_host identified by
'password';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for user_(at)_host;
+-------------------------------------------------------------------------------+
| Grants for user_(at)_host
|
+-------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'_(at)_'host' IDENTIFIED BY PASSWORD
'5d2e19393cc5ef67' |
| GRANT SELECT, CREATE ON db.tbl TO 'user'_(at)_'host'
|
+-------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> grant file on *.* to user_(at)_host;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for user_(at)_host;
+------------------------------------------------------------------------------+
| Grants for user_(at)_host
|
+------------------------------------------------------------------------------+
| GRANT FILE ON *.* TO 'user'_(at)_'host' IDENTIFIED BY PASSWORD
'5d2e19393cc5ef67' |
| GRANT SELECT, CREATE ON db.tbl TO 'user'_(at)_'host'
|
+------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Dies sieht man auch indem man sich die Tabelle mit den
Benutzerrechten anguckt:
mysql> use mysql
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+-----------------+
6 rows in set (0.00 sec)
Bei den Tabellen fehlt es das FILE-Recht:
mysql> desc tables_priv;
+-------------+----------
| Field | Type
+-------------+----------
| Host | char(60)
| Db | char(64)
| User | char(16)
| Table_name | char(60)
| Grantor | char(77)
| Timestamp | timestamp(14)
| Table_priv | set('Select','Ins...
| Column_priv | set('Select','Ins...
+-------------+----------
Bei den Benutzern gibt es das FILE-Recht:
mysql> desc user;
+-----------------+---------------+...
| Field | Type |...
+-----------------+---------------+
| Host | char(60) |
| User | char(16) |
| Password | char(16) |
| Select_priv | enum('N','Y') |
| Insert_priv | enum('N','Y') |
| Update_priv | enum('N','Y') |
| Delete_priv | enum('N','Y') |
| Create_priv | enum('N','Y') |
| Drop_priv | enum('N','Y') |
| Reload_priv | enum('N','Y') |
| Shutdown_priv | enum('N','Y') |
| Process_priv | enum('N','Y') |
| File_priv | enum('N','Y') |
| Grant_priv | enum('N','Y') |
| References_priv | enum('N','Y') |
| Index_priv | enum('N','Y') |
| Alter_priv | enum('N','Y') |
+-----------------+---------------+
17 rows in set (0.00 sec)
mysql>
Übrigens ist kein FLUSH PRIVILEGES; notwendig bei der Benutzung
von GRANT, sondern nur wenn man die obigen Tabellen mit INSERT,
UPDATE, DELETE oder REPLACE selbst aktualisiert.
Gruß,
Kaj
--
Kaj S. Arnö
http://www.polycon.fi/mysql/de.php
On Mon, 11 Jun 2001, Patrick Bierans wrote:
> Meil Ziel:
> select * into outfile '/path/file.sql' from db.tbl;
>
> Welches Recht brauche ich? "FILE", nicht war?
>
> grant file on db.tbl to user_(at)_host identified by 'password';
> flush privileges;
>
> select * into outfile '/path/file.sql' from db.tbl;
> -> Access denied for user: 'user_(at)_host' (Using password: YES)
>
> Kann mir jemand sagen, warum es nicht geht?
>
> TIA,
>
> P. Bierans
>
> --
> LYNET Kommunikation AG - http://www.lynet.de - Patrick Bierans
> Das Internet-Systemhaus fuer Multimedia- und Netzwerkloesungen
> Zentrale Luebeck Fon +49-451-6131-0, Fax +49-451-6131-333
> Niederlassung Hamburg Fon +49-40-65738-0, Fax +49-40-65738-333
>
> ---
> !!NEU!!
> Fragen und Antworten zu MySQL und dieser Liste unter
> -->> http://www.4t2.com/mysql
>
>
---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive