type=page
status=published
title=update-connector-security-map
next=update-connector-work-security-map.html
prev=unset-web-env-entry.html
~~~~~~
update-connector-security-map
=============================

[[update-connector-security-map-1]][[GSRFM00252]][[update-connector-security-map]]

update-connector-security-map
-----------------------------

modifies a security map for the specified connector connection pool

[[sthref2258]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] update-connector-security-map [--help]
--poolname connector_connection_pool_name
[--addprincipals principal_name1[,principal_name2]*] 
[--addusergroups user_group1[,user_group2]*]
[--removeprincipals principal_name1[,principal_name2]*]
[--removeusergroups user_group1[,user_group2]*]
[--mappedusername username]
mapname
----

[[sthref2259]]

Description

The `update-connector-security-map` subcommand modifies a security map
for the specified connector connection pool.

For this subcommand to succeed, you must have first created a connector
connection pool using the `create-connector-connection-pool` subcommand.

This subcommand is supported in remote mode only.

[[sthref2260]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--poolname`::
  Specifies the name of the connector connection pool to which the
  security map that is to be updated belongs.
`--addprincipals`::
  Specifies a comma-separated list of EIS-specific principals to be
  added. Use either the `--addprincipals` or `--addusergroups` options,
  but not both in the same command.
`--addusergroups`::
  Specifies a comma-separated list of EIS user groups to be added. Use
  either the `--addprincipals` or `--addusergroups` options, but not
  both in the same command.
`--removeprincipals`::
  Specifies a comma-separated list of EIS-specific principals to be
  removed.
`--removeusergroups`::
  Specifies a comma-separated list of EIS user groups to be removed.
`--mappedusername`::
  Specifies the EIS username.

[[sthref2261]]

Operands

mapname::
  The name of the security map to be updated.

[[sthref2262]]

Examples

[[GSRFM785]][[sthref2263]]

Example 1   Updating a Connector Security Map

This example adds principals to the existing security map named
`securityMap1`.

[source,oac_no_warn]
----
asadmin> update-connector-security-map --poolname connector-pool1 
--addprincipals principal1,principal2 securityMap1
Command update-connector-security-map executed successfully
----

[[sthref2264]]

Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref2265]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-connector-security-map.html#create-connector-security-map-1[`create-connector-security-map`(1)],
link:delete-connector-security-map.html#delete-connector-security-map-1[`delete-connector-security-map`(1)],
link:list-connector-security-maps.html#list-connector-security-maps-1[`list-connector-security-maps`(1)]


