無線網絡能夠正常連接成功,但是卻一直顯示沒有訪問權限,是怎么回事?如何才能解決?
這個問題比較復雜,可以通過以下的順序進行逐項排除:
1、有可能是顯示的信息不正確,還沒有及時的更新過來,或者系統有問題,導致顯示不正常,有此提示時,可以先上網試一下,看是否能正常打開網頁,如果可以正常打開網頁,說明網絡連接沒有問題,可以正常使用,可以不用關注那個提示,只要能正常上網就可以了。
2、 如果無法打開網頁,可以登錄QQ或者微信,說明是外網是通的,解析有問題,可以檢查一下DNS的設置,如果提示是這樣提示:
先更新瀏覽器,或者更換瀏覽器,解決瀏覽器的問題,或者證書的問題。
打開一個是公網IP地址的網站測試一下,看是否正常訪問,如果可以訪問,可以確定是DNS解析的問題。
3、如果瀏覽器無法打開網頁,無法登錄QQ或微信,看是否能通過瀏覽器訪問路由器的管理界面,如果可以,說明局域網是沒有問題的,問題出在外網,要查看外網線路,或者通過手機連接路由器WIFI 檢查是否能正常上網,檢查時一定關閉手機流量,如果無線WiFi不通,手機會自動走流量,看上去像是網絡通的,其實不是。如果不通,可以找互聯網接入商先解決上網問題,可以通過DOS命令行PING 114.114.114.114 來判斷是否有外網,如果超時,說明外網沒有連接成功。
4、通過瀏覽器無法訪問路由器的管理界面,可能是IP地址不對,或者沒有獲得分配的IP地址,可以手動設定無線網卡的IP地址,或者重新啟動路由器或電腦,重新連接WIFI,看是否能獲得IP地址,可以通過使用 /all 命令來檢查本地網卡的IP地址情況,如果IP地址為169.254.x.x說明書是沒有獲得IP地址,可以檢查DHCP Client 服務是否啟用,如果沒有啟用,先啟用。執行其他 相關的命令
/
/
/release
/renew
5、如果檢查DHCP client服務已經啟用了,還是無法獲得IP地址,可以采用重置WINSOCK的方法,方法就是這樣在DOS提示符下輸入NETSH WINSOCK RESET, 然后重新啟動電腦,看是否可以正常上網,很多問題到這里就基本解決了,如果重置后還是無效,繼續后面的操作。
6、禁用無線網卡驅動程序再啟用,或者設備管理器中刪除無線網卡的驅動程序,重新識別一下無線網卡驅動,或者更新無線網卡驅動到最新驅動程序試嘗試。
7、如果是系統,或者系統,可以檢查 的自動更新補丁,看是否在無線不能上網的同一時間段,有自動更新的補丁安裝,如果有可以卸載。
8、如果上述的步驟都不行,可以通過注冊表導入對應的正常的操作系統的WINSOCK 的注冊表項。
9、通過命令行卸載IP協議,重新安裝IP協議,初始化IP協議設置,NETSH IP INTALL NETSH INT IP RESET
10、重置操作系統,恢復出廠設置,恢復到當初購買時的狀態,如果能正常使用了,可以安裝一鍵禁用Windows自動升級的功能程序,避免再次發生類似的情況,或者更新操作系統到WINDOWS 11。
11、無線網卡故障,更換無線網,徹底解決無線網卡不能上網問題了。
更多詳細操作視頻可以參考視頻號,或抖音 或通過電腦訪問網址:電腦網絡 視頻版
Power BI本地部署的集成及數據權限控制
戳上面的PowerBI中國社區關注我們哦!
本文目標人群是對Power BI本地部署和第三方系統集成以及如何做數據權限控制有疑問的童鞋。Power BI本地部署的正確全稱是Power BI Report Server,下載地址短域名,簡稱PBI RS。
先說結論,PBI RS可以在不同的環境下實現和第三方系統的集成和并且可以針對不同用戶做到數據權限控制。
開始之前先說明一下認證和授權這兩個概念。認證,是PBI RS識別請求訪問的用戶是不是有效用戶。授權,是用戶在經過PBI RS認證是有效用戶之后,PBI RS來解決這個用戶有沒有權限訪問某個頁面的功能。在下文的討論中,主要討論不同的認證方式,然后會討論授權中關于數據授權的部分。
PBI RS的核心框架和SQL Server的 Service非常相似(其實兩者從實現機制上差別巨大,這里不做深究),可以簡單的理解為,PBI RS是一個.Net Web Site,如果要實現和它的深度集成,把它作為一個.Net Web Site來集成就可以了。第三方系統和它做集成有兩種方式:AD認證的集成模式、Form認證的集成模式。這兩種方式沒有優劣之分,只有合適與否。
AD認證的集成模式
AD(或者Windows)認證是PBI的默認認證方式。在這種方式下,需要第三方應用也采用了AD的認證方式才可以正常的和PBI RS做集成。注意,這種方式要求第三方系統采用了AD的認證方式,并且用戶在使用AD賬戶登錄了操作系統,才能正常的不用輸入登錄用戶名和密碼去訪問PBI RS或第三方系統。不用登陸的原因是用戶在登陸操作系統時,已經輸入了用戶名和密碼經過了AD的認證。這里不做第三方系統和AD集成的探討,如果有需求,請參考微軟官方的文檔。
在第三方系統做好了AD的集成后,與PBI RS的集成,官方給出了通過URL的方式在第三方做iframe的嵌入。即通過將報表的地址,然后增加后綴 ?rs:embed=true的方式來實現集成。如果在瀏覽器直接輸入,其對比效果如下:
訪問/reports/powerbi/test/RLS?rs:embed=true的效果,只有報表區域。
訪問/reports/powerbi/test/RLS的效果,包含了PBI RS的一些固有元素。
如果你還想在URL里傳入參數,控制PBI報表的顯示內容,還可以通過這樣的參數組合來實現:reports/powerbi/[]?rs:Embed=true&filter=[]/[ or ] eq 'value' [and []/[ or ] eq 'value']
【對自定義制作報表場景有硬需求的用戶一定要注意這段】
在AD認證模式下,用戶使用PBI Desktop(本地版本)編輯完報表后,可以直接另存到PBI RS上。因為運行PBI Desktop的賬戶是AD賬戶,因此PBI Desktop和PBI RS之間是有認證關系的。那如果用戶在非域的windows上訪問系統并且編輯報表,然后也想將報表直接另存到PBI RS上怎么辦?一個解決方案是,使用runas命令(runas /netonly /user: "")。有需求的童鞋可以查一下這個命令的用法,然后給這類用戶一個bat批處理文件(或其他形式的可以使用runas命令或類似命令的交付物),用bat文件來代替原來的pbi desktop的啟用方式。
此外,如果對安全性要求不是很高,用戶也可以通過js里的對象,使用get方法將用戶名和密碼傳遞給PBI RS然后再請求iframe中的報表地址。這種方式需要注意兩點,第一是用戶名和密碼實際是明文get請求到PBI RS的;第二需要考慮不同瀏覽器對腳本的支持情況。
很多時候,用戶的環境不是純AD的環境,或者使用了其他的SSO方案,這時候怎么做呢?我們可以使用PBI RS的Form認證方式。
在AD認證中的權限控制
PBI RS中如果想實現不同用戶訪問同一張報表時,看到的數據只能是這個用戶權限范圍之內的數據,則需要通過結合SSAS(SQL Server Service)來實現。具體步驟如下:
在AD中創建user1和user2。
使用SSDT(SQL Server Data Tools,請通過搜索引擎從微軟官網下載),創建一個SSAS的tabular模型,然后部署到SSAS中。具體操作步驟,請參考官方教程:,教程內容比較豐富,如果僅需要快速了解權限相關,請直接跳轉到教程列表的“補充課程-動態安全性”部分。這個步驟的重點是,在模型中額外創建user1和user2對應的數據權限映射表,然后在這個權限映射表中,使用()函數來做過濾。
使用PBI Desktop直連(Direct Query而非Import)到SSAS中對應的模型,制作報表,然后將報表發布到PBIRS。
user1和user2在PBI RS中都被管理員授予報表的瀏覽權限。
使用user1和user2在訪問這張報表時,數據會按不同的用戶做對應的呈現。
有些時候,用戶可能會遇到下面的錯誤:
一般這種情況是由于服務器采用了k8s認證模式,而服務器卻沒有做好對應的配置,遇到這種情況,請參考:
Form認證的集成模式
PBI RS本身是一個.Net Web應用,實現其Form認證和.Net Web程序的Form認證基本原理一樣。PBI RS提供了接口讓用戶可以實現自定義的Form認證。所謂的自定義就是,你可以選擇實現你希望的PBI RS認證邏輯,是通過賬號密碼,還是SSO服務器的某種標準(比如SAML),只要用戶在PBIRS的擴展模塊實現了sion2接口。微軟給出了示例代碼,并放到了github上。示例代碼下載地址:。完成Form認證的設置需要的步驟比較多,而且需要比較多的.net web相關知識,為了讓大家可以更快上手,微軟在github上的示例代碼的最近更新中,添加了一個腳本,可以實現一鍵部署,方便了大家體驗Form認證。
在Form認證模式下,第三方系統可以非常方便的和PBI RS做集成。比較推薦的方式還是使用官方介紹的embed的URL方式。但是在Form認證下,目前存在一個問題是,PBI Destkop在制作完報表后,無法直接另存到PBI RS中。用戶嘗試在另存為的時候 ,會得到服務器返回的一個錯誤。目前這個錯誤是由于PBI Desktop在當前版本還不支持Form認證,根據PBI社區的信息,產品組已經在制作相關的功能,下個版本可能會解決。目前的一個解決辦法是,用戶編輯完pbix報表后,不要另存為,而是選擇先存到本地,然后再登陸到PBI RS,利用上傳功能,將pbix文件上傳到PBI RS上。這種模式下,為了安全性考慮,上傳的pbix的數據源連接的信息會丟失(如果不丟失就需要PBIRS保存用戶指定的數據源的用戶名和密碼,這點會有比較大的安全隱患),需要用戶在PBI RS站點上再編輯一下上傳的pbi報表的數據源信息,pbi報表才可以正常顯示。而每次上傳報表后還要再次做一次數據源的編輯對用戶來說,操作過于繁瑣。因此,我們可以做一個簡單的頁面,這個頁面使用PBI RS提供的RESTAPI來實現pbix文件的上傳,在上傳完畢后,調用相關RESTAPI,將這個報表的數據源信息自動重寫。關于RESTAPI的功能,不在這里詳述了,有興趣的童鞋可以去PBI官網的文檔中查看更多信息。
在Form認證中的權限控制
在Form認證中,PBI RS的用戶不再是AD用戶,而SSAS不支持非AD用戶(或windows用戶)之外的認證方式。這種情況下怎么控制不同用戶的數據權限呢?答案是,還是通過SSAS來完成。具體思路如下:
在PBI RS里創建user1和user2
使用SSDT創建SSAS模型,然后發布到SSAS,注意,在創建模型時,依然需要一張用戶和數據權限的映射表。此時暫時先不處理權限的映射。
使用PBI Desktop通過直連的方式直連到SSAS,然后創建報表,并將pbix文件上傳到PBI RS上。
在PBI RS上編輯這張報表的數據源成以下格式:
Data Source=[server name or server ip];Initial Catalog=[model name];={{UserID}}
注意,紅色部分是核心。是SSAS的連接字符串的擴展參數;{{userid}}是PBI RS的內置通配符,會將這個通配符的值替換成當前PBI RS登陸用戶,然后傳遞給SSAS。
在SSAS中,增加一個角色,在這個角色的數據過濾條件中,輸入類似于下面的格式的公式:
=[]=()
使用user1和user2登陸報表,查看到這張報表的數據已經根據用戶做了過濾。
一些常見問題:
PBI RS的REST API怎么調用?
簡單來說,需要訪問/reports/api/v2.0/me,獲得PBI RS的cookie,然后使用這個cookie去訪問其他的api。
我想禁止用戶下載PBI里的數據,怎么做?
使用SQL Server Studio連接到PBI RS服務,然后將服務器屬性的值改成False。
PBI RS只有很少的幾個角色,怎么創建新的具有自定義權限的角色?
使用SQL Server Studio連接到PBI RS后,在服務器的角色中創建新的角色。
如何通過 Studio管理PBI RS?
打開SSMS,使用 service類型,連接地址為 。
本文參考的一些鏈接:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。