【发布时间】:2020-05-27 09:46:27
【问题描述】:
我想通过 SQL 获取用户的创建日期和最后修改日期。
我设法通过SCIM 获得了meta.created 和meta.lastModified,但如果可能的话,我真的很想直接通过SQL 获得这些信息。
示例输出 (/scim/v2/Users?startIndex=200&count=1)
{
"schemas" : [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ],
"Resources" : [ {
"schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ],
"id" : "1",
"meta" : {
"resourceType" : "User",
"created" : "2020-05-27T09:09:19Z",
"lastModified" : "2020-05-27T09:09:19Z"
},
"userName" : "synthesis_user",
"displayName" : "synthesis_user_display_name",
"name" : {
"givenName" : "synthesis_user_first_name",
"familyName" : "synthesis_user_last_name"
},
"emails" : [ {
"primary" : true,
"value" : "synthesis.user@snowflake.com"
} ],
"active" : false,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" : {
"defaultWarehouse" : "synthesis_warehouse",
"defaultRole" : "synthesis_role",
"snowflakeUserName" : "synthesis_name"
}
} ],
"totalResults" : 1,
"startIndex" : 1,
"itemsPerPage" : 1
}
我设法通过 `SNOWFLAKE.ACCOUNT.USERS' 上的 CREATED_ON 列获取了创建日期:
SELECT CREATED_ON FROM "SNOWFLAKE"."ACCOUNT_USAGE"."USERS" WHERE NAME='xxxx';
但是没有其他列指示“最后修改日期”(返回时间戳TIMESTAMP_LTZ 的唯一列是CREATED_ON、DELETED_ON、BYPASS_MFA_UNTIL、LAST_SUCCESS_LOGIN、EXPIRES_AT、@ 987654334@)。
所以我的问题是我可以在其他地方获得什么时候对用户进行了最后一次更改? 对用户所做的更改是指对 objectType 用户的 objectProperties 的更改,或者换句话说,最后一个ALTER USER xxxx SET ...
【问题讨论】:
-
您对用户感兴趣的“更改”类型是什么?来自 SCIM 的 lastModified 来自 SCIM 方面,而不是 Snowflake。因此,问题是什么被归类为您对日期感兴趣的更改。授予的角色?密码更改?如果只是角色授予,那么您必须从每个用户的 account_usage.grants_to_users 视图中查找 MAX(CREATED_ON) 和 MAX(DELETED_ON),以查看用户最后一次授予或撤销某项内容的时间。
-
@MikeWalton 正在寻找
snowflake.account_usage.users上已在行级别显示的信息更改的时间戳。所以原则上是用户的任何 objectProperties 的最后一次更改的时间戳。或者换句话说,最后一个ALTER USER xxxx SET ...的时间实际上改变了一些东西。
标签: snowflake-cloud-data-platform