本頁面說明精細存取權控管使用者如何存取 Spanner 資料庫。
如要瞭解精細的存取權控管機制,請參閱「關於精細的存取權控管機制」。
精細存取權控管使用者必須選取資料庫角色,才能執行 SQL 陳述式和查詢,以及對資料庫執行資料列作業。在變更角色之前,系統會在整個工作階段中保留您選取的角色。
提交查詢、DML 或資料列作業時,Spanner 會使用下列規則檢查授權:
- Google Cloud 控制台
- Spanner 會先檢查您是否具備資料庫層級的 IAM 權限。如果是,Google Cloud 控制台就不會顯示資料庫角色選取器,工作階段會繼續使用資料庫層級的權限。 
- 如果您只有精細的存取權控管權限,沒有 IAM 資料庫層級權限,則必須已獲授與 - spanner_sys_reader系統角色或其中一個成員角色。在資料庫「總覽」頁面選取角色,讓 Google Cloud 控制台工作階段以必要權限繼續執行。
- Google Cloud SDK
- 提交查詢、DML 或列作業時,如果指定資料庫角色,Spanner 會檢查精細的存取控管權限。如果檢查失敗,Spanner 就不會檢查資料庫層級的 IAM 權限,作業也會失敗。 - 如果您未指定資料庫角色,Spanner 會檢查資料庫層級的 IAM 權限,如果檢查成功,您的工作階段就會繼續使用資料庫層級的權限。 
存取 Spanner 資料庫時,請使用下列方法指定資料庫角色:
控制台
- 選取資料庫,然後在資料庫的「總覽」頁面中,按一下「目前角色」欄位旁的「變更資料庫角色」 (鉛筆) 圖示。 - 在預設情況下,精細存取權控管使用者登入時,這個欄位的值為 - public。如要瞭解- public系統角色,請參閱精細的存取權控管系統角色。
- 在「變更資料庫角色」對話方塊中,從可用角色清單中選取其他角色。 
- 按一下「更新」。 - 「目前角色」欄位會顯示新角色。 
gcloud
- 將 - --database-role選項新增至- gcloud spanner databases execute-sql指令,如下所示:- gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME 
用戶端程式庫
C++
C#
Go
Java
Node.js
PHP
Python
Ruby