If the owner of a table is _PUBLIC, users do not need to be granted object privileges to access the table.

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

based on that you can build an OWNER that has also limited rights (only SELECT, REFERENCES, .. or whatever) 

So you do it for this Owner only

As you said all are unique

I try to summarize it simple:
IDkey is used in storing object s. Best to be translated : Global subscript of data store.
Could be defaulted to %Integer >0

Unique key defines an index with unique values of a property in parallel to IDkey. Checked during object save.

PrimaryKey comes from SQL world and could be interpreted  mostly as a synonym to IDkey
 

ENSDEMO>d $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
 
The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
ENSDEMO>>select * from Ens_Config.Credentials
1.      select * from Ens_Config.Credentials
 
ID      BusinessPartner PasswordObject  Password        SystemName      Username
 
.... Rows(s) Affected

try 

Do ##class(%SQL.Util.Procedures).CSVTOCLASS(2, .rowType, pFileName, pDelimiter,,1) 
;; no defaults if not required or the EXACT count:  9 params = 8 comma   
;; I counted 9 

and/or

Property Name As %String (MAXLEN="");

and/or

;; the last comma in rowType looks also suspect to me.

set  rowType=" . . . .    ,ActiveStatus Boolean" 

HTH

my full support to 3 !!!!   and to 5, 2, 4 in this priority.

The difference between   ANSWER and COMMENT  causes  more confusion than being helpful.
Especially in the actual sequence.
Comment to Answers eventually may make sense. 
More than once I found myself in a Comment where it should have been an Answer.  

My suggestion:

 -handle all editing just in a modal pop-up .
- allow deleting (or hiding) your entry if you don't feel it appropriate anymore.

For the cube you have servermgr.exe where you define the ports you want to use 
docs: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

 

In CSP gateway (from Mgmt Portal) you have Configuration -> Deault Parameters ->Instance Host Name: to set server + port

docs: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

if you disable authentication  for  Username / PW you always come in as "UnknownUser"

in Mgmt Portal go to  System > Security Management > Users > Edit User for "UnknownUser"

and set Startup Tag^Routine:  ^%zmyLOGIN
and then do your own authetication.

if you intend to go to Prorammer Mode you just have to call "do ^%PMODE" at the end.
otherwise the terminal closes.