Implementierung der Mehrmandantenfähigkeit
Erfahren Sie, wie Sie Multi-Tenancy auf Netezza Performance Server 11.2.1.1 und niedriger implementieren können, indem Sie externe Netzwerk- und Benutzerressourcen isolieren.
1. Trennen eines externen Netzes.
Die Trennung von Netzen kann weniger als 2 Stunden in Anspruch nehmen.
- Aufbau einer externen Verbindung
- IBM Cloud Pak for Data System unterstützt die Verbindung zu mehreren externen Netzwerken durch die Verwendung dedizierter Fabric Switch Uplink-Ports. Um eine erfolgreiche Verbindung zu mehreren externen Netzwerken herzustellen, müssen Sie:
- Verkabeln Sie die zusätzlichen Anschlüsse.
An jedem Fabric-Switch sind die Ports 45-48 für Uplinks zum Kundennetzwerk vorgesehen.
- Konfigurieren Sie LACP.
- Wenden Sie sich an den IBM Support, um die IBM Cloud Pak for Data System
ymlzu aktualisieren und die neue Konfiguration anzuwenden.Um diesen Schritt abzuschließen, müssen Sie dem IBM Support die folgenden Informationen geben:- Nummern der IBM Cloud Pak for Data System Fabric-Switch-Ports, die für die zusätzliche Verbindung verkabelt wurden: der Porttyp, der auf den BM Cloud Pak for Data System gegenüberliegenden Kunden-Switch-Ports konfiguriert wurde (Trunk und oder Access); VLAN-Nummer für einen Trunk-Port.
- Die Floating-IP, Gateway-IP und Netzmaske, die Sie auf der zusätzlichen Fabric-Schnittstelle verwenden möchten.
Eine Beispielnetzkonfigurationsdatei
ymlmit zwei externen Netzen mit Zugangsports auf der Kundenseite:all: children: [...] switches: hosts: FabSw1a: ansible_host: localhost external_connection_enabled: True external_connection_config: external_link1: switch_ports: ['45'] port_config: mtu: 9000 link_speed: 10000 vlans: ['4080'] strict_vlan: false name: h0 lacp_link: True lacp_rate: Fast clag_id: 100 partner_switch: 'Fabsw1b' external_link2: switch_ports: ['46'] port_config: mtu: 9000 link_speed: 10000 vlans: ['4081'] strict_vlan: false name: h1 lacp_link: True lacp_rate: Fast clag_id: 101 partner_switch: 'Fabsw1b' vars: [...] application_network_enabled: True application_network: network1: default_gateway: true vlan: 4080 # just number, no slash prefix: 24 gateway: 192.168.10.1 floating_ip: 192.168.10.10 mtu: <OPTIONAL> custom_routes: <OPTIONAL> network2: default_gateway: false vlan: 4081 # just number, no slash prefix: 24 gateway: 192.168.20.1 floating_ip: 192.168.20.10 mtu: <OPTIONAL> custom_routes: <OPTIONAL>
- Verkabeln Sie die zusätzlichen Anschlüsse.
- Isolation auf Verbindungsebene
Nachdem Sie sich mit mehreren externen Netzwerken verbunden haben, können Sie eine entsprechende Datenbank isolieren.
Der Befehl SET CONNECTION definiert Host-Zugriffsdatensätze für Netezza auf eine oder mehrere Datenbanken.SET CONNECTION HOSTSSL DATABASE dev_db IPADDR ‘192.168.10.0’ IPMASK ‘255.255.255.0’ SET CONNECTION HOSTSSL DATABASE qa_db IPADDR ‘192.168.20.0’ IPMASK ‘255.255.255.0’
2. Trennen von Datenbanken.
Schemaänderungen können in weniger als 1 Stunde abgeschlossen sein.
- Erstellen Sie Datenbanken für verschiedene Mieter:
MYDB.SCH1 (USER)=> CREATE DATABASE dev_db with COLLECT HISTORY ON; MYDB.SCH1 (USER)=> CREATE DATABASE qa_db with COLLECT HISTORY ON; - Setzen Sie
disable_crossdb_writeaufONinpostgressql.conf. Weitere Informationen finden Sie in der Anleitung.
3. Erstellen einer Benutzerressourcengruppe.
ACL-Änderungen können weniger als 1 Stunde in Anspruch nehmen.
- Administratorrechte, die Benutzern und/oder Gruppen gewährt werden.
- Objektprivilegien, die mit bestimmten Objekten verbunden sind (z. B. Tabelle xyz).
- Klassen von Objekten (z. B. alle Tabellen).
Um Mandantenfähigkeit zu erreichen, können Sie zwei Ressourcengruppen haben. Beispiel: development_group und qa_group.
Jede Ressourcengruppe kann mehrere Benutzer enthalten. Der Einfachheit halber sollten Sie der Gruppe alle Admin- und Objektrechte gewähren. Sie können nach Bedarf Privilegien vergeben.
Weitere Informationen finden Sie unter Netezza.
Eine Ressourcengruppe ist eine spezielle Gruppe mit einem Mindestprozentsatz an Ressourcen, der nicht Null ist. Jeder Ressourcengruppe müssen RESOURCE MINIMUM und RESOURCE MAXIMUM zugewiesen werden, wie für die benötigte Zuweisung angegeben. Weitere Informationen finden Sie unter Mindest- und Höchstbeträge für Ressourcen.
Vorgehensweise
- Erstellen Sie die Gruppen
development_groupundqa_groupmitRESOURCE MINIMUMundRESOURCE MAXIMUMMYDB.SCH1(USER)=> CREATE GROUP development_group with RESOURCE MINIMUM 60 RESOURCE MAXIMUM 100;MYDB.SCH1(USER)=> CREATE GROUP qa_group with RESOURCE MINIMUM 40 RESOURCE MAXIMUM 100; - Gewähren Sie
development_groupundqa_groupdie folgenden Berechtigungen:MYDB.SCH1(USER)=> GRANT ALL ADMIN IN dev_db.ALL to group development_group; MYDB.SCH1(USER)=> GRANT ALL ADMIN IN qa_db.ALL to group qa_group; MYDB.SCH1(USER)=> GRANT ALL on dev_db to group development_group; MYDB.SCH1(USER)=> GRANT ALL on qa_db to group qa_group; - Erstellen Sie Benutzer und fügen Sie sie zu ihren jeweiligen Gruppen hinzu:
MYDB.SCH1(USER)=> CREATE USER John with password 'abc123' in group development_group in resourcegroup development_group; MYDB.SCH1(USER)=> CREATE USER Bob with password '3566' in group qa_group in resourcegroup qa_group; - Benutzer zu Gruppen hinzufügen:
MYDB.SCH1(USER)=> ALTER USER Smith in group qa_group in resourcegroup qa_group;