2011-01-24 3 views
4

J'utilise SQL Server 2008 64 bits Enterprise sur Windows Server 2008 Enterprise 64 bits. Je trouve que lorsque j'exécute l'instruction suivante dans SQL Server Management Studio, j'ai besoin de l'autorisation sysadmin. J'utilise l'instruction pour importer des données d'Excel vers une table de base de données. Ma question est, je suis préoccupé par le fait que l'autorisation de sysadmin est trop élevée, des solutions pour utiliser l'autorisation inférieure privilégiée pour implémenter la même fonction?Problème d'autorisation SQL Server 2008 OPENROWSET

select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 
'Excel 12.0;HDR=YES;DATABASE=C:\mytest1.xlsx',sheet1$) 

Répondre

4

Des livres en ligne OPENROWSET (Transact-SQL)

L'utilisateur nécessite l'autorisation ADMINISTER BULK OPERATIONS.

et here is the entry pour l'accorder. C'est une permission au niveau du serveur, donc oui, c'est assez élevé.

Pour essayer des autorisations plus bas, vous pouvez créer une connexion de serveur lié standard et ajoutez une connexion à l'aide

EXEC sp_addlinkedsrvlogin 'LINKSERVERNAME', 'false', 
    'localuser', 'rmtuser', 'rmtpass' 

Il ne semble pas y avoir de permissions spécifiques qui doivent être accordées, donc si vous configurez un lien serveur, il est imprudent de le configurer avec un linkedsrvlogin générique qui correspond à chaque utilisateur local. Configurer des mappages local-distant spécifiques pour contrôler l'accès d'un utilisateur local, via le serveur lié, sur le serveur distant (par le login rmtuser).

+0

Merci, je suis intéressé par la solution de serveur lié. En utilisant le serveur lié, quelle est la permission la plus basse nécessaire? Pourriez-vous me référer un guide ou un tutotial? – George2

+0

Merci, réponse à la question. – George2

1
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 
'Excel 12.0;HDR=YES;DATABASE=C:\mytest1.xlsx',sheet1$) 

S'il vous plaît essayer avec celui-ci

Questions connexes