管理模型安全
您可以使用 GRANT 和 REVOKE 语句来管理模型的安全权限。以下示例展示了如何使用 faithful
表和 linearReg 模型更改 user1 和 user2 的权限。
-
在以下示例中,dbadmin 将 SELECT 权限授予 user1:
=> GRANT SELECT ON TABLE faithful TO user1;
GRANT PRIVILEGE
-
然后,dbadmin 将公共架构的 CREATE 权限授予 user1:
=> GRANT CREATE ON SCHEMA public TO user1; GRANT PRIVILEGE
-
以 user1 身份连接到数据库:
=> \c - user1
-
以 user1 身份构建 linearReg 模型:
=> SELECT LINEAR_REG('linearReg', 'faithful', 'waiting', 'eruptions');
LINEAR_REG
---------------------------
Finished in 1 iterations
(1 row)
- 以 user1 身份将 USAGE 权限授予 user2:
=> GRANT USAGE ON MODEL linearReg TO user2;
GRANT PRIVILEGE
- 以 user2 身份连接到数据库:
=> \c - user2
- 要确认权限已授予 user2,请运行 GET_MODEL_SUMMARY 函数。对模型具有 USAGE 权限的用户可以在该模型上运行 GET_MODEL_SUMMARY:
=> SELECT GET_MODEL_SUMMARY(USING PARAMETERS model_name='linearReg');
=======
details
=======
predictor|coefficient|std_err |t_value |p_value
---------+-----------+--------+--------+--------
Intercept| 33.47440 | 1.15487|28.98533| 0.00000
eruptions| 10.72964 | 0.31475|34.08903| 0.00000
==============
regularization
==============
type| lambda
----+--------
none| 1.00000
===========
call_string
===========
linear_reg('public.linearReg', 'faithful', '"waiting"', 'eruptions'
USING PARAMETERS optimizer='newton', epsilon=1e-06, max_iterations=100, regularization='none', lambda=1)
===============
Additional Info
===============
Name |Value
------------------+-----
iteration_count | 1
rejected_row_count| 0
accepted_row_count| 272
(1 row)
- 以 user1 身份连接到数据库:
=> \c - user1
- 然后,您可以使用 REVOKE 语句撤销 user2 的权限:
=> REVOKE USAGE ON MODEL linearReg FROM user2;
REVOKE PRIVILEGE
- 要确认权限已撤销,请以用户 2 身份连接并运行 GET_MODEL_SUMMARY 函数:
=> \c - user2
=>SELECT GET_MODEL_SUMMARY('linearReg');
ERROR 7523: Problem in get_model_summary.
Detail: Permission denied for model linearReg