======Benutzer anlegen====== Für die Interaktion mit der Datenbank und Datenpflege wird ein dedizierter SQL-Benutzer benötigt. Dieser lässt sich entweder grafisch über das MaxDB-Studio oder über eine SQL-Sitzung mit dem Datenbank-Administratorkonto anlegen. Zuerst wird eine Verbindung mit der Datenbank hergestellt: [root@st-db002 ~]# sqlcli -d TESTDB -u DBADMIN,test123 Welcome to the MaxDB interactive terminal. Type: \h for help with commands \q to quit Mit dem folgenden SQL-Kommando wird ein Benutzer "**christian**" mit dem Passwort "**test123**" angelegt: sqlcli pmc=> CREATE USER christian PASSWORD test123 0 rows affected (19.996 msec) Der Benutzer hat nun jedoch noch keine Rechte - es wird eine Tabelle "**test**" angelegt - der eben angelegte Benutzer erhält dann alle Rechte für diese Tabelle: sqlcli pmc=> CREATE TABLE TESTDB.test(id FIXED(2), text CHAR(20)) 0 rows affected (43.910 msec) sqlcli pmc=> GRANT ALL ON TESTDB.test TO christian 0 rows affected (42.571 msec) Im Schema "**DOMAIN**" gibt es eine Tabelle "**TABLEPRIVILEGES**" - in dieser sind alle erteilten Rechte definiert. Mit dem folgenden Kommando wird überprüft, ob die Rechte übernommen wurden: sqlcli pmc=> SELECT * FROM DOMAIN.TABLEPRIVILEGES WHERE GRANTEE='CHRISTIAN' | SCHEMANAME | OWNER | TABLENAME | GRANTOR | GRANTEE | PRIVILEGE | IS_GRANTABLE | | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ------------------------------ | ------------ | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | SELECT | NO | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | UPDATE | NO | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | INSERT | NO | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | DELETE | NO | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | ALTER | NO | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | INDEX | NO | | TESTDB | DBADMIN | TEST | DBADMIN | CHRISTIAN | REFERENCES | NO | 7 rows selected (67.776 msec) In diesem Fall wurden für diverse SQL-Befehle entsprechende Rechte vergeben. In der SQL-Abfrage ist es wichtig den Benutzernamen in CAPS zu definieren - auch wenn der Benutzer als lower-case angelegt wurde! ======Funktionstest====== Der angelegte Benutzer kann sofort benutzt werden: [root@st-db002 ~]# sqlcli -d TESTDB -u christian,test123 Welcome to the MaxDB interactive terminal. Type: \h for help with commands \q to quit sqlcli TESTDB=> SELECT * FROM TESTDB.test * 0: sqlcli TESTDB=> INSERT INTO TESTDB.test (id, text) VALUES ('1', 'Test') 1 row affected (21.469 msec) sqlcli TESTDB=> INSERT INTO TESTDB.test (id, text) VALUES ('2', 'Bla') 1 row affected (16.784 msec) sqlcli TESTDB=> SELECT * FROM TESTDB.test | ID | TEXT | | ------ | -------------------- | | 1 | Test | | 2 | Bla | 2 rows selected (24.090 msec) ======Benutzer löschen====== Analog zur Benutzeranlage wird der Benutzer ebenfalls mit dem Datenbank-Administratorkonto gelöscht - die vergebenen Benutzerrechte werden automatisch gelöscht: [root@st-db002 ~]# sqlcli -d pmc -u DBADMIN,test123 Welcome to the MaxDB interactive terminal. Type: \h for help with commands \q to quit sqlcli pmc=> DROP USER christian 0 rows affected (51.197 msec) sqlcli pmc=> SELECT * FROM DOMAIN.TABLEPRIVILEGES WHERE GRANTEE='CHRISTIAN' * 0: