To operate and interact with Vantage with the Teradata Python package, the user must have a series of permissions granted. Otherwise, executing ML Engine analytic functions can result in SQL errors on the Python client that stem from inadequate database user permissions.
A database user must be granted in advance the following permissions by the Vantage database administrator before using the teradataml package.
- GRANT EXECUTE FUNCTION ON SYSLIB TO user;
- GRANT CONNECT THROUGH proxyuser TO PERMANENT user WITHOUT ROLE;
- GRANT SELECT ON TD_SERVER_DB.coprocessor TO user;
- GRANT INSERT ON TD_SERVER_DB.coprocessor TO user;
- GRANT EXECUTE FUNCTION ON TD_SERVER_DB.coprocessor TO user;
- GRANT CREATE SERVER ON TD_SERVER_DB TO user;
- GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.QGEXECUTEFOREIGNQUERY TO user;
- GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.QGINITIATOREXPORT TO user;
- GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.QGINITIATORIMPORT TO user;
- GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.QGREMOTEEXPORT TO user;
- GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.QGREMOTEIMPORT TO user;
- GRANT CTCONTROL ON user TO proxy_user.
The proxyuser is a suitable database proxy user for the analytic functions as determined by the database administrator.
Users must be granted the SELECT privilege to the following Data Dictionary views:
- DBC.DatabasesV
- DBC.TablesV
- DBC.ColumnsV
- DBC.UsersV
- DBC.Indices
- DBC.DBCInfoV