Archiv der Kategorie: Datenbank

„How and When to Write SQL in PL/SQL“ – Steven Feuerstein

Ein interessanter Beitrag von Oracle’s PL/SQL Evangelist Steven Feuerstein auf der Oracle Learning Library Platform

Die gemachten Aussagen gelten nicht nur für Oracle, sondern für jedes RDBMS:

  • „SQL statements directly reflect our business models“
  • „You should do as much as possible in pure SQL“
  • „Don’t put the SQL statements in Java or […] Fight the good fight!“
    • „hide complex queries behind views“
    • „put your other SQL statements in PL/SQL packages […], hiding the SQL behind an API of procedures and fucntions“
  • „Set standards for writing SQL in your applications!“

 

 

 

Hauptspeicherdatenbanken – Eine Übersicht

Prof. Dr. habil. Alexander Löser gibt auf golem.de einen kurzen Überblick über den aktuellen Stand von Main-Memory-Database-Management-Systeme (MMDBMS) – auch In-Memory-Datenbanken genannt.
Der Artikel gibt eine Zusammenfassung bzw. Gegenüberstellung von den verschiedenen Speicherarchitekturen, Fail-Over-Szenarien, Kompressionsverfahren, Indexstrukturen. Des Weiteren wird er ergänzt durch einige Einsatzgebiete von MMDBMS.
Neben den bekanntesten Datenbanken wie SAP Hana, Oracle 12c, Microsoft Hekaton werden auch eher noch unbekannte Systeme wie EXASolution, Parstream, MemSQL u.a. benannt. Gerade aber EXASolution ist einer der schnellsten Hauptspeicherdatenbanken, wie auch der TPC-H Benchmark seit Jahren beweist.

Artikel: www.golem.de: data-management-wie-hauptspeicherdatenbanken-arbeiten.html

Benutzerrechte: GRANT vs ALTER DEFAULT PRIVILEGES

Beim Administrieren der Benutzerrechte gibt es was zu beachten. Neben dem GRANT/REVOKE Befehl, welcher im SQL Standard definiert ist, kennt PostgreSQL noch einen weiteren – ALTER DEFAULT PRIVILEGES.

Normalerweise werden zum Beispiel mit GRANT SELECT  ON ALL TABLES … die Lese-Rechte aller bestehenden und zukünftigen Tabellen gesetzt. PostgreSQL sieht es hier anders:

ALTER DEFAULT PRIVILEGES allows you to set the privileges that will be applied to objects created in the future. (It does not affect privileges assigned to already-existing objects.) Currently, only the privileges for tables (including views), sequences, and functions can be altered.“ (PostgreSQL Dokumentation)

Beispiel:

ALTER DEFAULT PRIVILEGES IN SCHEMA myschema 
  GRANT SELECT, INSERT ON TABLES TO myuser;

Demnach wirkt sich der GRANT Befehlt nur auf bestehende Objekte aus.