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]
----
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]
----
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)]


