You should be able to limit access to the monitoring/director module to specific hosts/service/groups via the Roles menu:
/icingaweb2/role/list
There you can restrict access to the Director module
and the monitoring module
so specific users/groups belonging to that role can only see the configured objects.
The filters you can use are described here:
https://icinga.com/docs/icinga-web-2/latest/modules/monitoring/doc/06-Security/#restrictions
As for the multiple director databases, I had no knowledge of that until now, as it is completely undocumented.
But it seems to work, just tested it:


Configs:
# cat /etc/icingaweb2/resources.ini
...
[icingadirector_db]
type = "db"
db = "mysql"
host = "localhost"
dbname = "icingadirector"
username = "icingadirector"
password = "."
use_ssl = "0"
charset = "utf8"
[icingadirector_db_customer]
type = "db"
db = "mysql"
host = "localhost"
dbname = "icingadirectorcustomer"
username = "test"
password = "test123"
use_ssl = "0"
charset = "utf8"
# cat /etc/icingaweb2/modules/director/config.ini
[db]
resource = "icingadirector_db"
resources = "icingadirector_db_customer"
Though hitting F5 in the browser always switches me to the primary resource. Not sure if my config is correct like this. As it is an undocumented feature im not sure how stable/usable it really is.
Also the webinterface does only update to the “correct” resource, when deploying the config and the checks for the other resource obviously get “stale”, as they are not executed.
So I not really seeing a usecase for this atm.