ในกรณีที่มีการสร้าง Roles เพื่อ Grant สิทธิ์การเข้าถึงข้อมูลให้แต่ละ User ใน OLAP แล้ว
การที่จะ Deploy Reporting service ให้ทำงานตามสิทธิ์ที่แต่ละ User จะมองเห็นข้อมูลนั้น
อาจจะค่อนข้างยุ่งยากสักนิด แต่สามารถทำได้ ขึ้นอยู่กับว่า OLAP Server และ Report Server
เป็น Server ตัวเดียวกัน หรือแยกกันอยู่ ในกรณีที่เป็นเครื่องเดียวกันจะง่ายกว่านิดหน่อยครับ
กรณีแรก SSAS กับ SSRS อยู่ใน Server ตัวเดียวกัน
การ เข้าใช้งาน Report จะมีการ Set secure 2 ขั้นตอนคือ
1 การ Connect เข้า SSRS
2 การ Connect จาก SSRS --> SSAS (OLAP)
หากขั้นตอนการ Connect จาก SSRS --> SSAS นั้นปัจจุบันใช้ User ที่เป็น Admin ในการ Access
ข้อมูลใน OLAP ซึ่งไม่ว่าตอน Connect เข้า RS จะใช้ User อะไร (เช่น bi_user,oper_user,report_user)
ก็ตาม แต่ตอน Connect เข้า SSAS จะใช้ user Admin เสมอซึ่งจะทำให้ไม่สามารถใช้ความสามารถของ SSAS ในเรื่องของ Roles ได้เลย เนื่องจาก user Admin เป็น user ที่สามารถ Access data ได้ทั้งหมด
จาก Policy ใหม่เรื่องการ Set user authen ในการ Access data
จึงได้ทำ Research วิธีการใช้ Role ใน SSAS ร่วมกับ SSRS
Connect using:
(1) - Credentials supplied by the user running the report
Use as Windows credentials when connecting to the data source
Connection แบบนี้จำเป็นต้อง เลือก Window credentials เสมอ และตอนรันรายงานจะขึ้นให้ใส่ User / Password ทุกครั้งซึ่งคงไม่เหมาะ
(2) - Credentials stored securely in the report server
-Use as Windows credentials when connecting to the data source
-Impersonate the authenticated user after a connection has been made to the data source
Connection ปัจจุบันที่ใช้อยู่คือข้อนี้ ร่วมกับ Option 1
เป็นการระบุไปเลยว่าตอน Access เข้า OLAP จะใช้ User ไหน ซึ่งขัดกับนโยบายใหม่ที่ต้องการ
ให้มีการแบ่งความรับผิดชอบในเรื่อง Enterprise ที่ Key acct ดูแล
Option สองตัวนี้ไม่สามารถใช้ร่วมกันได้
(3) - Windows integrated security
จากการศึกษาถึงวิธีการ Connect วิธีนี้จากเครื่อง TEST
- SSRS (BI-REPORT-SERV)
- SSAS (BI-OLAP-SERV)
กระณีเครื่อง OLAP และ REPORTING เป็นคนละเครื่อง
หากจะใช้วิธีนี้จำเป็นที่จะต้องแก้ไขค่า Configure ใน ReportServer ในส่วนของ Directory Security
- Open IIS -- > Web Sites --> Default Web site
- Right click in "Reports" choose Property
- Select "Directory Security" tab
- Click edit in "Authentication and access control"
- In "Authentication access" Select "Basic authentication (password is sent in clear text)"
- Uncheck "Integrated windows authentication"
ซึ่งปกติแล้วค่า Default จะเป็น "Integrated windows authentication"
แต่หาก SSRS and SSAS เป็นเครื่องเดียวกัน สามารถใช้ Option นี้ได้เลย ไม่จำเป็นต้องแก้ Configure
Mssql, Microsoft sql server, SSAS, SSRS ,SSIS , Analysis Service, Reporting Service, Integration Service, XMLA ,MDX ,SQL
วันจันทร์ที่ 12 กรกฎาคม พ.ศ. 2553
วันจันทร์ที่ 5 กรกฎาคม พ.ศ. 2553
Visual Totals in MDX and Role Security
MDX , Total All members summary problem
บทความนี้ขอกล่าวถึง Measurement Summary ในระบบ OLAP ซึ่งมีประโยชน์มากๆ
ในกรณีที่หน่วยงานมีการแบ่งส่วนการดูแลข้อมูล / ลูกค้า / ยอดขายต่าง ๆ แล้ว หากมีการสร้าง Roles ขึ้นมาควบคุมการเข้าถึงข้อมูลแล้ว อาจเคยเจอปัญหาเรื่องยอดรวมเป็นยอดรวมของทั้งหมด แทนที่จะเป็นยอดรวมของลูกค้าที่ดูแล เป็นต้น
ได้ค้นหาข้อมูลจนได้พบว่า จริงๆ แล้วใน Role ที่สร้างขึ้นในส่วนการจำกัดสิทธิ์ (Dimension data) นั้นใน Advance tab นั้นมี Option ให้เลือกซึ่งไม่ได้ Default ไว้ให้ นั่นคือ "Enable Visual Totals" ซึ่งเป็น Option ที่จะคำนวนยอดรวมเฉพาะข้อมูลที่ User มีสิทธิ์เข้าถึงได้เท่านั้น ซึ่งจริง ๆ แล้วตามหลักการควรจะต้อง Enable option นี้เสมอเมื่อมีการสร้าง Roles ขึ้นมา (อันนี้ขึ้นอยู่กับจุดประสงค์การใช้งาน)
How to set / enable Visual Total in OLAP Roles.
To be continue....
Ref . http://blogs.microsoft.co.il/blogs/barbaro/archive/2008/02/06/visual-totals-in-mdx-and-role-security.aspx
บทความนี้ขอกล่าวถึง Measurement Summary ในระบบ OLAP ซึ่งมีประโยชน์มากๆ
ในกรณีที่หน่วยงานมีการแบ่งส่วนการดูแลข้อมูล / ลูกค้า / ยอดขายต่าง ๆ แล้ว หากมีการสร้าง Roles ขึ้นมาควบคุมการเข้าถึงข้อมูลแล้ว อาจเคยเจอปัญหาเรื่องยอดรวมเป็นยอดรวมของทั้งหมด แทนที่จะเป็นยอดรวมของลูกค้าที่ดูแล เป็นต้น
ได้ค้นหาข้อมูลจนได้พบว่า จริงๆ แล้วใน Role ที่สร้างขึ้นในส่วนการจำกัดสิทธิ์ (Dimension data) นั้นใน Advance tab นั้นมี Option ให้เลือกซึ่งไม่ได้ Default ไว้ให้ นั่นคือ "Enable Visual Totals" ซึ่งเป็น Option ที่จะคำนวนยอดรวมเฉพาะข้อมูลที่ User มีสิทธิ์เข้าถึงได้เท่านั้น ซึ่งจริง ๆ แล้วตามหลักการควรจะต้อง Enable option นี้เสมอเมื่อมีการสร้าง Roles ขึ้นมา (อันนี้ขึ้นอยู่กับจุดประสงค์การใช้งาน)
How to set / enable Visual Total in OLAP Roles.
To be continue....
Ref . http://blogs.microsoft.co.il/blogs/barbaro/archive/2008/02/06/visual-totals-in-mdx-and-role-security.aspx
วันจันทร์ที่ 14 มิถุนายน พ.ศ. 2553
SQL Server view table size,index size
How to view Table size , index size
View/show rows in table with out select
Use "sp_spaceused"
Use myDB
GO
sp_spaceused "trans"
GO
How to view database information in SQL Server
วันพุธที่ 9 มิถุนายน พ.ศ. 2553
SQL Server database collation
ความแตกต่างของ Database Collation
Thai_CI_AI คือ Language ภาษาไทย
CI = Case Insensitive
AI = Accent Insensitive
ต่างกับ Thai_CI_AS คือ
AS = Accent Sensitive
แนะนำใช้ Thai_CI_AI เพราะ Thai_CI_AS จะมีปัญหาเกี่ยวกับภาษาไทยเรื่องของตัวการันต์
เช่นหากเราเขียน QUERY
SELECT * FROM customer WHERE Name LIKE 'พิมพ%'
หาก Collation เป็น Thai_CI_AS คนที่ชื่อ พิมพ์ใจ จะไม่ออกมาตามที่ควรจะเป็นครับ
นอกจากนั้นแล้ว Column ใน Table ก็มี Collation ของตัวเองอีกด้วย
ดังนั้นตอน Install Server หรือ Create Database ควรต้องระวังเรื่องนี้ด้วยครับ
Thai_CI_AI คือ Language ภาษาไทย
CI = Case Insensitive
AI = Accent Insensitive
ต่างกับ Thai_CI_AS คือ
AS = Accent Sensitive
แนะนำใช้ Thai_CI_AI เพราะ Thai_CI_AS จะมีปัญหาเกี่ยวกับภาษาไทยเรื่องของตัวการันต์
เช่นหากเราเขียน QUERY
SELECT * FROM customer WHERE Name LIKE 'พิมพ%'
หาก Collation เป็น Thai_CI_AS คนที่ชื่อ พิมพ์ใจ จะไม่ออกมาตามที่ควรจะเป็นครับ
นอกจากนั้นแล้ว Column ใน Table ก็มี Collation ของตัวเองอีกด้วย
ดังนั้นตอน Install Server หรือ Create Database ควรต้องระวังเรื่องนี้ด้วยครับ
วันอังคารที่ 4 พฤษภาคม พ.ศ. 2553
Reporting Service (SSRS) , Subscription Locale
เรื่อง ภาษาของเครื่อง ณ เวลาที่ทำ Reports Subscription
มีความรู้เล็ก ๆ น้อย ๆ มาฝากเกี่ยวกับภาษาของเครื่อง ในตอนที่เราทำ Subscription ครับ
หากรายงานของเรามี parameter ที่เป็นวันที่แล้วต้องการให้มี default เป็นช่วงเวลาที่กำหนด
อย่างของผม กำหนดให้เป็นวันที่ 1 - สิ้นเดือนของเดือนที่ผ่านมา สามารถทำได้ครับ
โดยการเขียน Script ในตัว parameter ของรายงาน แต่เมื่อทำ Subscription โดยให้ User สามารถ
ทำเองได้ ปรากฏว่าเจอปัญหาที่ทำเอางงไปครึ่งวันกว่าจะหาเจอว่าเป็นเพราะอะไร
ปัญหาคือ วันที่ที่ได้เขียน Script ไว้เกิดเพี้ยน ไม่เป็นไปตามรูปแบบที่ต้องการ ทำให้รายงานรันผิด
ได้พยายามหาสาเหตุอยู่นาน แล้วก็ได้เจอครับ โดยเปิด Database ของ Reporting ขึ้นมาแล้ว
Select ดูจาก table subscriptions ทำให้เห็นความแตกต่างของฟิลด์ ๆ นึงคือ Field "Locale" ครับ
ซึ่งตัวนี้เองเป็นตัวที่กำหนดรูปแบบของวันที่ในรายงานที่ทำ Subscription ผมจึงจัดการ update
โดยใช้ SQL ธรรมดากันเลยครับ ไม่งั้นต้องมานั่งทำใหม่ใช้เวลานานมาก
SQL script for update locale
UPDATE Subscriptions
set locale ='en-US'
WHERE locale = 'th-TH'
เท่านี้เป็นอันเรียบร้อยสบายตัวไป ^ ^
มีความรู้เล็ก ๆ น้อย ๆ มาฝากเกี่ยวกับภาษาของเครื่อง ในตอนที่เราทำ Subscription ครับ
หากรายงานของเรามี parameter ที่เป็นวันที่แล้วต้องการให้มี default เป็นช่วงเวลาที่กำหนด
อย่างของผม กำหนดให้เป็นวันที่ 1 - สิ้นเดือนของเดือนที่ผ่านมา สามารถทำได้ครับ
โดยการเขียน Script ในตัว parameter ของรายงาน แต่เมื่อทำ Subscription โดยให้ User สามารถ
ทำเองได้ ปรากฏว่าเจอปัญหาที่ทำเอางงไปครึ่งวันกว่าจะหาเจอว่าเป็นเพราะอะไร
ปัญหาคือ วันที่ที่ได้เขียน Script ไว้เกิดเพี้ยน ไม่เป็นไปตามรูปแบบที่ต้องการ ทำให้รายงานรันผิด
ได้พยายามหาสาเหตุอยู่นาน แล้วก็ได้เจอครับ โดยเปิด Database ของ Reporting ขึ้นมาแล้ว
Select ดูจาก table subscriptions ทำให้เห็นความแตกต่างของฟิลด์ ๆ นึงคือ Field "Locale" ครับ
ซึ่งตัวนี้เองเป็นตัวที่กำหนดรูปแบบของวันที่ในรายงานที่ทำ Subscription ผมจึงจัดการ update
โดยใช้ SQL ธรรมดากันเลยครับ ไม่งั้นต้องมานั่งทำใหม่ใช้เวลานานมาก
SQL script for update locale
UPDATE Subscriptions
set locale ='en-US'
WHERE locale = 'th-TH'
เท่านี้เป็นอันเรียบร้อยสบายตัวไป ^ ^
สมัครสมาชิก:
บทความ (Atom)