sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué no puedo conectarme a una instancia compartida de SQL Server 2012 LocalDB?

OTRA EDICIÓN

Cory, si tiene instaladas versiones anteriores de SQL Server (por ejemplo, 2008), esa es la versión de sqlcmd Tu estas usando. Para conectarse a LocalDb, debe usar la versión de SQL Server 2012 de sqlcmd . Por lo tanto, sus instrucciones para los usuarios deben garantizar que utilicen la versión de SQL Server 2012 ejecutando:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"

Esto funcionó para mí. Lo que no he verificado es si esta ruta y versión de sqlcmd está disponible para los usuarios que tienen solo instaló el sqllocaldb.msi. Lo siento, pero no tengo ninguna máquina desnuda sin SQL Server 2012 instalado (o con solo versiones anteriores instaladas) para probar esto a fondo. Pero avíseme si llama explícitamente a la versión 110 de sqlcmd hace el truco.

Creo que también puede indicar a los usuarios que modifiquen las variables de su sistema para que las versiones 110 aparezcan primero (que en mi humilde opinión debería ser el caso automáticamente).

El FileTimeToSystemTime ha sido confirmado como un error por uno de los compañeros de trabajo de Krzysztof. Por lo tanto, todavía no hay una solución que yo sepa para que los no propietarios se conecten a través de sqllocaldb . Pero he demostrado que tanto SSMS como sqlcmd se puede hacer que funcione, así que espero que eso te acerque más a la ejecución.

EDITAR

Debe agregar cualquier usuario que no sea propietario a la instancia, p. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; y cualquier permiso apropiado también. En mi prueba, el inicio de sesión fallaba y generaba un mensaje de error incorrecto (el mensaje de error "FileTimeToSystemTime" es un error). También necesita GRANT CONNECT . Una vez que haga esto, podrá ser capaz de conectarse desde el segundo usuario usando Management Studio con esta conexión (la única que probé):

(localdb)\.\MySharedInstance

Pero desde sqlcmd , sigo recibiendo un error sin importar cómo intente conectarme:

sqlcmd -S "(localdb)\.\MySharedInstance"
sqlcmd -S ".\MySharedInstance"
sqlcmd -S "(localdb)\MySharedInstance"
sqlcmd -S "GREENHORNET\MySharedInstance"
sqlcmd -S ".\LOCALDB#SH04FF8A"
sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A"

Todos producen:

Aunque he verificado que la instancia está configurada para aceptar conexiones remotas. Así que hay algún otro aro que sqlcmd debe estar pasando.

Y con respecto al sqllocaldb exe, ¿cómo sigue esto alguna lógica? Puedo ver que la instancia está allí a través de info , recibo un mensaje de error adecuado cuando trato de detenerlo, recibo un mensaje de que [ya] se inició cuando intento iniciarlo, pero no puedo conectarme?

Entonces, a menos que necesite sqlcmd acceso, a corto plazo haría que los usuarios secundarios hicieran lo suyo con SSMS (una vez que haya otorgado los permisos adecuados) y, con suerte, Krzysztof tendrá más información sobre los otros elementos.

Con respecto a la actualización 4.0.2, de http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :