¿Cómo se puede quitar el guarda el nombre de usuario y la contraseña de la capa de ArcGIS (.lyr) archivos?
Un guión para la solución preferible, pero incluso un punto y haga clic en método será bienvenida.
¿Cómo se puede quitar el guarda el nombre de usuario y la contraseña de la capa de ArcGIS (.lyr) archivos?
Un guión para la solución preferible, pero incluso un punto y haga clic en método será bienvenida.
Desde siquiera un punto y haga clic en método de bienvenida " yo soy la presentación de la siguiente, que puedo usar para limpiar (o incluso re-asignar) nombre de usuario/contraseñas de layerfiles y de las capas dentro de un MXD. Esta solución se basa en ArcCatalog Versión 10.2.2.3552.
Paso 1: Abrir ArcCatalog, navegue a la carpeta que contiene el objetivo de la capa de archivo, y haga clic en Propiedades para comprobar la conexión actual guardan los datos en el archivo de capa.
Paso 2: para Salir del cuadro de diálogo Propiedades, a continuación, agregue el layerfile a un nuevo MXD y guardar el MXD en algún lugar conveniente. Me coloqué el MXD en la misma ruta de la carpeta por ahora. Haga clic derecho en el MXD y elegir "Establecer Fuentes de Datos" (sí, estoy al límite-vergüenza para describir esta secuencia de pasos , porque de lo complicado que son...pero los pasos de trabajo para restablecer la conexión.)
Paso 3: En el Conjunto de Fuentes de Datos cuadro de diálogo, seleccione "Reemplazar Todo" ya que no existe una sola capa en el MXD. En el Reemplazar Todos de diálogo, seleccione y vacía el contenido de la 'Reemplazar con una línea. a continuación, haga clic en el Reemplazar Todo el botón. ACEPTAR fuera del Set de diálogo Orígenes de Datos y el AVISO de que un nuevo MXD se ha creado en la misma ubicación.
Paso 4: Abra el nuevo MXD y guardar inmediatamente la única capa como un nuevo archivo de capa.
Asegúrese de cancelar cualquier conexión de los cuadros de diálogo que aparecen como abrir el cuadro de diálogo nuevo <-- la cancelación de estos diálogos es importante debido a que su objetivo es 'limpiar' la conexión, no se vuelve a asignar a un nuevo conjunto de credenciales. (Observe en la imagen, el signo de exclamación rojo en la Tabla de Contenidos identifica una capa sin credenciales de conexión.)
Paso 5: Volver al Catálogo, la actualización de la carpeta, a continuación, haga clic en el recién creado layerfile para revelar su vacío (se borra) propiedades de la conexión.
De nuevo, no es un método perfecto, por cualquier medio, pero no funciona para borrar la conexión nombre de usuario y la contraseña de un archivo de capa.
ACTUALIZACIÓN: con el fin De obtener la conexión sin cambios, pero a null el nombre de usuario/contraseña, realice este paso adicional ANTES de que cualquier sustitución se realiza: Agregar una nueva conexión de base de datos asegúrese de desmarcar la guarda el nombre de usuario/contraseña de la caja:
Luego, en el Paso 3 durante el reemplazo de Toda la acción en el Conjunto de Datos de Origen del cuadro de diálogo, introduzca la ruta de la recientemente creada la conexión, de modo que puede ser utilizado como la sustitución:
Pasar a los Pasos 4 y 5 como normal y te darás cuenta de que la conexión se guarda correctamente, pero el nombre de usuario/contraseña ha sido borrado. -- y gracias a todos por los comentarios para ayudar a aclarar los objetivos.
la solución a tu pregunta depende del tipo de la capa. Si la capa de puntos a un geodataset en un archivo de conexión de sde, Aquí es una solución rápida. Este script está haciendo las siguientes tareas:
1 - comprobar la datasoure fuente para encontrar el archivo de conexión de sde
2 - crear un nuevo archivo de conexión de la anterior sin la opción de guardar nombre de usuario y contraseña
import arcpy
import os.path
from shutil import copyfile
inLayer = r"d:\inLayer.lyr"
outLayer =r"d:\outLayer.lyr"
theLayer = arcpy.mapping.Layer(inLayer)
wspath = theLayer.workspacePath
baseName = os.path.basename(wspath)
dirName = os.path.dirname(wspath)
try:
desc = arcpy.Describe(ws)
cp = desc.connectionProperties
if cp.authentication_mode == 'OSA':
authType = ''
else: #DBMS
authType = 'DATABASE_AUTH'
sp = cp.instance.split(':') #'sde:postgresql:localhost'
if len(sp) >1:
db_platform = sp[1].upper()
else:
print 'cant find db platform'
exit
#Sqlserver must become sql_server
if db_platform == 'SQLSERVER':
db_platform = 'SQL_SERVER'
version1 = ''
version_type = ''
if hasattr(cp, 'historical_name'):
version_type = "HISTORICAL"
version1 = cp.historical_name
elif hasattr(cp, 'historical_timestamp'):
version_type = "POINT_IN_TIME"
version1 = cp.historical_timestamp
elif hasattr(cp, 'version'):
version_type = "TRANSACTIONAL"
version1 = cp.version
else:
print 'cant find version info'
print "removing sde conneciton file..."
#backup connection file
copyfile(wspath, wspath+"_Back")
os.remove(wspath)
print "creating new sde connection file"
r = arcpy.CreateDatabaseConnection_management(dirName,
baseName,
db_platform,
cp.instance,
authType,
"#",
"#",
"DO_NOT_SAVE_USERNAME",
"#", #for oracle database = schema, from instance
cp.database,
version_type,
version1,
"#" # "5/19/2011 8:43:41 AM"
)
#remove the backup file
os.remove(wspath+"_Back")
#theLayer.replaceDataSource('',"SDE_WORKSPACE",'',False)
#theLayer.saveACopy(outLayer)
except Exception as e:
print 'error,'+str(e)
os.rename(wspath+"_Back",wspath)
He usado el script vinculado a continuación con bastante éxito. Soy capaz de seleccionar y rejuntado múltiples lyrfiles a una conexión de base de datos. Parece ahogarse en la Anotación, y se Agrupan lyrfiles, pero el tiempo esto ahorra hace vale la pena utilizar.
Soy capaz de volver a la fuente de un lyrfile de una conexión de base de datos que contiene la información del usuario, a uno con un parcial de conexión. Ahora, cuando un usuario intenta utilizar uno de estos lyrfiles, se le solicita una contraseña. Nota: ArcGIS normalmente contiene la información del usuario durante una sesión, así que es una buena idea para cerrar todas las ventanas y abrir de ArcGIS para probar correctamente.
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.