Microsoft SQL Server‏ (MSSQL)

ל-Looker יש תמיכה ברמת השילוב ב-MSSQL. בדף הזה יש מידע על חיבור Looker ל-MSSQL.

הצפנה של תנועה ברשת

מומלץ להצפין את תעבורת הנתונים ברשת בין אפליקציית Looker לבין מסד הנתונים. כדאי לשקול אחת מהאפשרויות שמתוארות בדף הפעלת גישה מאובטחת למסד נתונים.

אם אתם רוצים להשתמש בהצפנת SSL, תוכלו לעיין במסמכי התיעוד של מיקרוסופט.

הגדרת אימות שרת

‫Looker דורש 'אימות שרת SQL' בשרת MSSQL. אם שרת MSSQL מוגדר רק כ-Windows Integrated Authentication, צריך לשנות את הגדרת השרת ל-Windows Integrated Authentication ו-SQL Server Authentication.

אם הגדרת השרת לא תקינה, Looker לא יוכל להתחבר. ההודעה הזו תופיע בהודעות היומן של SQL Server, למשל: "ניסיון להתחבר באמצעות אימות SQL נכשל. השרת מוגדר לאימות של Windows בלבד".

אם צריך לבצע את השינוי הזה, אפשר לפעול לפי השלבים הבאים:

  1. ב-SQL Server Management Studio Object Explorer, לוחצים לחיצה ימנית על השרת ואז לוחצים על Properties (מאפיינים).
  2. בדף אבטחה, בקטע אימות שרת, בוחרים את מצב אימות השרת החדש ולוחצים על אישור.
  3. בתיבת הדו-שיח SQL Server Management Studio, לוחצים על OK כדי לאשר שצריך להפעיל מחדש את SQL Server.
  4. ב-Object Explorer, לוחצים לחיצה ימנית על השרת ואז לוחצים על Restart. אם SQL Server Agent פועל, צריך להפעיל אותו מחדש.

מידע נוסף זמין במסמכי התיעוד של Microsoft.

יצירת משתמש Looker

Looker מאמת את מסד הנתונים באמצעות אימות של SQL Server. אין תמיכה בשימוש בחשבון דומיין.

כדי ליצור חשבון, מריצים את הפקודות הבאות. משנים את הסיסמה some_password_here לסיסמה ייחודית ומאובטחת:

CREATE LOGIN looker
  WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO

מתן הרשאה למשתמש Looker לבחור מתוך טבלאות

ב-Looker נדרשת ההרשאה SELECT לכל טבלה או סכימה שרוצים לשלוח להן שאילתות. יש כמה דרכים להקצות הרשאה מסוג SELECT:

  • כדי להעניק הרשאה לכל סכימה בנפרד, מריצים את הפקודה הבאה לכל סכימה:SELECT

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • כדי להעניק הרשאת SELECT לטבלאות ספציפיות, מריצים את הפקודה הבאה לכל טבלה:

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • ב-MSSQL בגרסה 2012 ואילך, אפשר גם להקצות למשתמש Looker את התפקיד db_datareader באמצעות הפקודות הבאות:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

מתן הרשאה למשתמש Looker להציג ולהפסיק הרצת שאילתות

צריך לתת ל-Looker הרשאה לזהות שאילתות ולהפסיק את ההרצה שלהן. לשם כך נדרשות ההרשאות הבאות:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

כדי להעניק את ההרשאות האלה, מריצים את הפקודות הבאות:

USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO

מתן הרשאה למשתמש Looker ליצור טבלאות

כדי לתת למשתמש Looker הרשאה ליצור PDT, מריצים את הפקודות הבאות:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

הגדרת סכימה זמנית

כדי ליצור סכימה שנמצאת בבעלות משתמש Looker ולהעניק למשתמש Looker את ההרשאות הנדרשות, מריצים את הפקודה הבאה:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

הגדרת אימות Kerberos

אם אתם משתמשים באימות Kerberos עם מסד הנתונים של MSSQL, אתם צריכים לפעול לפי השלבים להגדרת Looker לחיבור באמצעות Kerberos, כמו שמתואר בקטע הבא.

הגדרת התצורה של לקוח Kerberos

קודם כול, צריך לוודא שכמה חלקי תוכנה מותקנים ושיש כמה קבצים במחשב של Looker.

לקוח Kerberos

מריצים את הפקודה kinit כדי לוודא שלקוח Kerberos מותקן במכונת Looker. אם לקוח Kerberos לא מותקן, צריך להתקין את הקבצים הבינאריים של לקוח Kerberos.

לדוגמה, ב-Redhat או ב-CentOS, הפקודה תהיה:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

צריך להתקין את Java 8 במכונת Looker ובתיקיות PATH ו-JAVA_HOME של משתמש Looker. אם צריך, מתקינים אותו באופן מקומי בספרייה looker.

Java Cryptography Extension

  1. מורידים ומתקינים את Java Cryptography Extension (JCE) ל-Java 8 מדף ההורדה הזה של Oracle.

    • מאתרים את הספרייה jre/lib/security של התקנת Java.
    • צריך להסיר את קובצי ה-JAR הבאים מהספרייה הזו: local_policy.jar ו-US_export_policy.jar.
    • מחליפים את שני הקבצים האלה בקובצי ה-JAR שכלולים בהורדה של קובצי המדיניות של JCE Unlimited Strength Jurisdiction Policy Files.

    יכול להיות שאפשר להשתמש בגרסאות של Java מלפני Java 8 עם JCE מותקן, אבל לא מומלץ לעשות את זה.

  2. מעדכנים את JAVA_HOME ואת PATH ב-~looker/.bash_profile כך שיצביעו על ההתקנה הנכונה של Java ו-source ~/.bash_profile, או יוצאים מהחשבון ונכנסים אליו שוב.

  3. בודקים את גרסת Java באמצעות java -version.

  4. מאמתים את משתנה הסביבה JAVA_HOME באמצעות echo $JAVA_HOME.

gss-jaas.conf

יוצרים קובץ gss-jaas.conf בספרייה looker עם התוכן הבא:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

אם צריך, אפשר להוסיף את debug=true לקובץ הזה באופן הבא:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};

krb5.conf

בשרת שבו פועל Looker צריך להיות גם קובץ krb5.conf תקין. כברירת מחדל, הקובץ הזה נמצא בתיקייה /etc/krb5.conf. אם הוא נמצא במיקום אחר, צריך לציין זאת בסביבה (KRB5_CONFIG בסביבת המעטפת).

יכול להיות שתצטרכו להעתיק את הקובץ הזה ממכונת לקוח אחרת של Kerberos.

lookerstart.cfg

מפנים לקבצים gss-jaas.conf ו-krb5.conf על ידי יצירת קובץ בספרייה looker (אותה ספרייה שמכילה את סקריפט לטעינה בזמן ההפעלה looker) בשם lookerstart.cfg שמכיל את השורות הבאות:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

אם הקובץ krb5.conf לא נמצא ב-/etc/krb5.conf, צריך גם להוסיף את המשתנה הזה:

  -Djava.security.krb5.conf=/path/to/krb5.conf

לצורך ניפוי באגים, מוסיפים את המשתנים הבאים:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

לאחר מכן מפעילים מחדש את Looker באמצעות ./looker restart.

אימות באמצעות Kerberos

אימות משתמשים

  1. אם krb5.conf לא נמצא ב-/etc/, צריך להשתמש במשתנה הסביבה KRB5_CONFIG כדי לציין את המיקום שלו.

  2. מריצים את הפקודה klist כדי לוודא שיש כרטיס תקף במטמון כרטיסי Kerberos.

  3. אם אין כרטיס, מריצים את הפקודה kinit username@REALM או kinit username כדי ליצור את הכרטיס.

  4. החשבון שמשמש עם Looker הוא כנראה חשבון ללא ראש, ולכן אפשר לקבל קובץ keytab מ-Kerberos כדי לאחסן את פרטי הכניסה לשימוש ארוך טווח. משתמשים בפקודה כמו kinit -k -t looker_user.keytab username@REALM כדי לקבל את כרטיס Kerberos.

חידוש אוטומטי של הכרטיס

מגדירים משימת cron שפועלת מדי פעם כדי לשמור כרטיס פעיל במטמון כרטיסי Kerberos. תדירות ההרצה תלויה בהגדרת האשכול. klist צריך לציין מתי הכרטיסים יפוגו.

יצירת חיבור Looker למסד הנתונים

כדי ליצור את החיבור מ-Looker למסד הנתונים:

  1. בקטע Admin (ניהול) ב-Looker, בוחרים באפשרות Connections (חיבורים) ואז לוחצים על Add Connection (הוספת חיבור).
  2. בתפריט הנפתח ניב, בוחרים את הגרסה של Microsoft SQL Server.

  3. בשדות מארח מרוחק ויציאה, מזינים את שם המארח והיציאה (יציאת ברירת המחדל היא 1433).

    אם אתם צריכים לציין יציאה שאינה ברירת המחדל (1433) ומסד הנתונים שלכם דורש שימוש בפסיק במקום בנקודתיים, אתם יכולים להוסיף useCommaHostPortSeparator=true בשדה פרמטרים נוספים של JDBC בהמשך הגדרות החיבור. כך תוכלו להשתמש בפסיק בשדה מארח מרוחק:יציאה. לדוגמה:

    jdbc:sqlserver://hostname,1434

  4. ממלאים את שאר פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף חיבור Looker למסד הנתונים.

  5. כדי לוודא שהחיבור בוצע בהצלחה, לוחצים על בדיקה. מידע לפתרון בעיות זמין בדף בנושא בדיקת הקישוריות למסד הנתונים.

  6. כדי לשמור את ההגדרות האלה, לוחצים על Connect (חיבור).

הגדרת החיבור ל-Looker

פועלים לפי ההוראות בדף התיעוד בנושא חיבור Looker למסד הנתונים כדי ליצור חיבור למסד הנתונים של MSSQL. בקטע Additional JDBC parameters (פרמטרים נוספים של JDBC) בדף Connection Settings (הגדרות חיבור), מוסיפים את הפרמטרים הבאים:

;integratedSecurity=true;authenticationScheme=JavaKerberos

חלק מהרשתות מוגדרות לשני תחומים של Kerberos, אחד ל-Windows Active Directory והשני ל-Linux ולמערכות אחרות שאינן Windows. במקרה כזה, כשמגדירים את תחום ה-Linux ואת תחום Active Directory כך שיהיו ביניהם יחסי אמון, זה נקרא 'אימות בין תחומים'.

אם ברשת שלכם נעשה שימוש באימות בין תחומים, אתם צריכים לציין במפורש את שם המשתמש ב-Kerberos עבור MSSQL Server. בשדה Additional JDBC parameters (פרמטרים נוספים של JDBC), מוסיפים את הפרטים הבאים:

;serverSpn=service_name/FQDN\:PORT@REALM

מחליפים את FQDN ואת PORT@REALM בפרטי הרשת. לדוגמה:

;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM

בנוסף, בדף Connection Settings ב-Looker צריך להזין ערכים בשדות Username ו-Password, אבל הם לא נדרשים ל-Kerberos. מזינים ערכי placeholder בשדות האלה.

בודקים את החיבור כדי לוודא שהוא מוגדר בצורה נכונה.

פרמטרים נתמכים של JDBC

ב-Microsoft SQL Server, ‏ Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters של החיבור. מידע על הפרמטרים האלה זמין במסמכי התיעוד של מסד הנתונים.

  • accessToken
  • ApplicationIntent
  • applicationName
  • authentication
  • authenticationScheme
  • cancelQueryTimeout
  • columnEncryptionSetting
  • database
  • databaseName
  • disableStatementPooling
  • domain
  • enablePrepareOnFirstPreparedStatementCall
  • Encrypt
  • failoverPartner
  • fips
  • gsscredential
  • hostNameInCertificate
  • instanceName
  • Integrated Security
  • integratedSecurity
  • jaasConfigurationName
  • keyStoreAuthentication
  • lastUpdateCount
  • locktimeout
  • loginTimeout
  • msiClientId
  • multiSubnetFailover
  • packetSize
  • password
  • portNumber
  • queryTimeout
  • realm
  • responseBuffering
  • selectMethod
  • sendStringParametersAsUnicode
  • sendTimeAsDatetime
  • serverName
  • serverPreparedStatementDiscardThreshold
  • serverSpn
  • transparentNetworkIPResolution
  • trustServerCertificate
  • useBulkCopyForBatchInsert
  • useCommaHostPortSeparator
  • user
  • workstationID
  • xopenStates

תמיכה בתכונות

כדי ש-Looker יתמוך בתכונות מסוימות, הדיאלקט של מסד הנתונים שלכם צריך לתמוך בהן גם כן.

התכונות הבאות נתמכות ב-Microsoft SQL Server 2008 ומעלה החל מ-Looker 26.10:

תכונה האם יש תמיכה?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
ביטול שאילתה
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות
סוג מיקום
סוג הרשימה
מאון
אחוזון נפרד
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
SQL Runner Select 10
מספר הפעמים שהופעל SQL Runner
SQL Explain
פרטי כניסה של OAuth 2.0
תגובות להוספת הקשר
איגום חיבורים
רישומים מסוג HLL
מודעות מצטברת
המרות מצטברות של PDT
אלפיות שנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים אנליטיים בתוך מסד הנתונים
יומנים בהתאמה אישית

התכונות הבאות נתמכות ב-Microsoft SQL Server 2016 החל מ-Looker 26.10:

תכונה האם יש תמיכה?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
ביטול שאילתה
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות
סוג מיקום
סוג הרשימה
מאון
אחוזון נפרד
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
SQL Runner Select 10
מספר הפעמים שהופעל SQL Runner
SQL Explain
פרטי כניסה של OAuth 2.0
תגובות להוספת הקשר
איגום חיבורים
רישומים מסוג HLL
מודעות מצטברת
המרות מצטברות של PDT
אלפיות שנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים אנליטיים בתוך מסד הנתונים
יומנים בהתאמה אישית

‫Microsoft SQL Server 2017 ואילך תומך בתכונות הבאות החל מ-Looker 26.10:

תכונה האם יש תמיכה?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
ביטול שאילתה
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות
סוג מיקום
סוג הרשימה
מאון
אחוזון נפרד
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
SQL Runner Select 10
מספר הפעמים שהופעל SQL Runner
SQL Explain
פרטי כניסה של OAuth 2.0
תגובות להוספת הקשר
איגום חיבורים
רישומים מסוג HLL
מודעות מצטברת
המרות מצטברות של PDT
אלפיות שנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים אנליטיים בתוך מסד הנתונים
יומנים בהתאמה אישית