Oracle 12c: SYSBACKUP, SYSDG und OS-Authentifizierung

12. Juli 2015 Aus Von Markus Flechtner

Mit Oracle 12c bietet Oracle bekanntermassen die Aufteilung der Zuständigkeiten für Datenbank-Administration im Allgemeinen, Datenbank-Sicherung und DataGuard Verwaltung. Dies geschieht zum einen über die Betriebssystemgruppen DBA, BACKUPDBA und DGDBA resp. über die User (bzw. User und Rechte) SYS, SYSBACKUP und SYSDG.

Auch wenn man in einem ersten Schritt diese Aufteilung der Zuständigkeiten nicht einführen möchte, empfehle ich doch, die Betriebssystemgruppen anzulegen und Oracle entsprechend zu installieren. Dann ist man auf eventuelle organisatorische Änderungen vorbereitet.

Wenn man diese Gruppen und User entsprechend vorbereitet hat, kann man für die Arbeit mit DGMGRL und RMAN auch die jeweiligen Betriebssystemnutzern und hat dann in den Tools nur eingeschränkte Rechte.

Aber leider gehen RMAN und DGMGRL unterschiedlich mit der OS-Authentifizierung um:

Die Gruppen- und Benutzerkonfiguration auf unserem Testsystem sieht wie folgt aus:

oracle@training:~/ [TVD12] cat /etc/group
..
oinstall:x:54321:oracle,rmanbackup,dgdba
dba:x:54322:oracle
..
oper:x:54323:oracle
backupdba:x:54324:oracle,rmanbackup
dgdba:x:54325:oracle,dgdba
kmdba:x:54326:oracle
..

oracle@training:~/ [TVD12] cat /etc/passwd
..
oracle:x:54321:54321::/home/oracle:/bin/bash
..
rmanbackup:x:54333:54324::/home/rmanbackup:/bin/bash
dgdba:x:54334:54325::/home/dgdba:/bin/bash

Damit sollte also alles für die Rechtetrennung via OS-Authentifizierung vorbereitet sein.

Starten wir mit dem Oracle-User:

oracle@training:~/ [TVD12] rman target=/
Recovery Manager: Release 12.1.0.2.0 - Production on Sun Jul 12 13:18:15 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
connected to target database: TVD12 (DBID=413165408)
RMAN>; backup spfile;
Starting backup at 12-JUL-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=26 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 12-JUL-15
channel ORA_DISK_1: finished piece 1 at 12-JUL-15
piece handle=/u02/backup/TVD12/1tqbs34s_1_1 tag=TAG20150712T131820 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-JUL-15
Starting Control File and SPFILE Autobackup at 12-JUL-15
piece handle=/u02/backup/TVD12/c-413165408-20150712-00 comment=NONE
Finished Control File and SPFILE Autobackup at 12-JUL-15
RMAN>; exit
Recovery Manager complete.

oracle@training:~/ [TVD12] dgmgrl
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL>; connect /
Connected as SYSDG.
DGMGRL>

Hier ändert sich nichts, die Anmeldung ist über die OS-Authentifizierung möglich. Aber:

Die Anmeldung beim DGMGRL erfolgt nicht als SYSDBA sondern automatisch als SYSDG.

Machen wir weiter mit unserem User DGDBA:

dgdba@training:~/ [TVD12] id
uid=54334(dgdba) gid=54325(dgdba) groups=54325(dgdba),54321(oinstall)
dgdba@training:~/ [TVD12] rman
Recovery Manager: Release 12.1.0.2.0 - Production on Sun Jul 12 13:20:36 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target '/ as sysdg'
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-04037: Connection should be as SYSDBA or as SYSBACKUP
RMAN> exit

OK, die Anmeldung am RMAN funktioniert nicht. Das ist ja auch so beabsichtigt.
Weiter geht’s mit dgmgrl:

dgdba@training:~/ [TVD12] dgmgrl
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL> connect /
Connected as SYSDG.

Das funktioniert wie geplant und auch hier gilt: der User ist automatisch als SYSDG angemeldet.

Und jetzt der User RMANBACKUP

rmanbackup@training:~/ [TVD12CDB] dgmgrl
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGR> connect /
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.

OK, die Anmeldung am DGMGRL funktioniert nicht. Aber das soll ja auch so sein.

rmanbackup@training:~/ [TVD12CDB] rman
Recovery Manager: Release 12.1.0.2.0 - Production on Sun Jul 12 13:25:17 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target /
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
ORA-01017: invalid username/password; logon denied

Nur ein

RMAN> connect target '/ as sysbackup'
connected to target database: TVD12CDB (DBID=3125497841)

funktioniert.

Und genau das ärgert mich ein bisschen: würde rman die Anmeldung als „ as SYSBACKUP“ durchführen – genauso wie DGMGRL, der implizit ” as SYSDG’ ergänzt, dann könnte man bestehende Skripte einfach weiterverwenden und müsste die Skripte nur als ein anderer Betriebssystem-User aufrufen. Aber so wie es jetzt gelöst ist, muss man – wenn man mit Rechtetrennung über Betriebssystembenutzer arbeitet – die Skripte anpassen und bei der RMAN-Anmeldung „AS SYSBACKUP“ ergänzen.


Werbung (Amazon-Partner-Link)