I have a question that you have just read in the title. In greater details, I want to know best practices regarding the user that the MobiLink server uses for own connections.
E.g. every example uses the line that creates system tables for MobiLink using the DBA user:
However, I assume that it would be better to create a separate "server user" with own schema and access rights.
Is it a good practice to do what I am asking? If yes, could you please recommend any reference, where I can read about it? I know that it is possible to decouple DB spaces (e.g. have one for transactional data, and one for MobiLink scripts and tables), however the help says that the performance will be reduced in this case.
Thank you in advance.
asked 22 Jul '14, 03:58
AFAIK when mlsrv16.exe connects to a SQL Anywhere 16 consolidated database, there is no mechanism to tell it to use some other user id to reference the ml* tables, other than the user id that mlsrv16.exe uses to connect to the consolidated database.
Generally speaking, that means most shops use the same user id for mlsrv16.exe as they did to run the syncasa.sql script. It is usually DBA, but it can certainly be something different; e.g., a user id that is only used for MobiLink purposes.
Some shops, particularly Oracle, have draconian security rules that require different user ids be used to run syncora.sql and mlsrv16.exe. That creates interesting challenges because mlsrv16.exe refers to ml* tables as "SELECT ... FROM ml_whatever ..." with no owner name.
With Oracle, you can use synonyms to deal with this challenge. In SQL Anywhere, you can use group membership... if you want more details, just ask.
To answer the question you DID ask, there is no reason to use a user id other than DBA, other than someone telling you to do it... then, if you MUST do it, try to use the SAME user id for both syncasa.sql and mlsrv16.exe.
answered 22 Jul '14, 10:34
Do you ask for a separate UID
answered 22 Jul '14, 04:14