将MySQL SQL语句隐藏到SQL Server

我正在安装需要数据库的产品 – 只要有可用的jdbc连接器,它就可以使用任何数据库。 但是,安装指南仅提供有关如何使其与MySQL一起使用的说明。

我用SQL Server Express运行它。

这些是MySQL的说明

CREATE DATABASE proddb; CREATE USER 'proddbusr'@'%' IDENTIFIED BY 'thepassword'; CREATE USER 'proddbusr'@'localhost' IDENTIFIED BY 'thepassword'; USE proddb; GRANT ALL PRIVILEGES ON *.* TO 'proddbusr'@'localhost' IDENTIFIED BY 'thepassword'; GRANT ALL PRIVILEGES ON *.* TO 'proddbusr'@'%' IDENTIFIED BY 'thepassword'; FLUSH PRIVILEGES; 

CREATE DATABASE语句在SQL Server上正常工作。

但是,下一个陈述扼杀。 看起来像db名称不应该在SQL Server中引号。 但是,我不确定SQL Server中“%”的等效项是什么。 同样的'proddb'@'localhost'

SQL Server也在GRANT语句中的*.*上扼杀。

熟悉SQL Server的人可以帮助我将所有这些语句转换为SQL Server的等价语句吗?

更新:

通过bartlaarhoven提供的链接。

 CREATE DATABASE proddb; CREATE LOGIN proddbusr with PASSWORD = 'thepassword'; CREATE USER proddbusr for LOGIN proddb; 

高兴这个作品。

但是,目前还不清楚在SQL Server中username @'%'和username @'localhost是如何转换的。

之后。

 USE proddb; 

这工作。

下一个陈述有问题。

 GRANT ALL PRIVILEGES ON *.* to proddb; 

SQL Server不能识别

我改变了这个

 GRANT ALL PRIVILEGES to proddb; 

这给了我错误The ALL permission is deprecated and maintained only for compatibility. It DOES NOT imply ALL permissions defined on the entity. The ALL permission is deprecated and maintained only for compatibility. It DOES NOT imply ALL permissions defined on the entity.

无论如何,在SQL Server Management Express中,我做了以下操作。 右键单击数据库proddb中的用户proddb – >属性。 在“拥有架构”和“数据库angular色成员资格”窗口中给予所有可能的权限,除了每个中的2个拒绝权限外。 这是类似于“授予所有特权”吗?

SQL Server与此不同。 你创build一个用户的密码,这是独立于其主机名或类似的东西。

然后,通过在数据库上为某个LOGIN创build一个USER来授予对数据库的访问权限。

然后你授予用户的权利。

阅读这些链接,你会得到你所需要的。

在SQL Server上创build一个login/用户看看这个:

 USE master GO CREATE LOGIN USER01 WITH PASSWORD = 'PASSword' 

然后,像这样使用GRANT来授予alter到任何数据库:

 USE master GO GRANT ALTER to any DATABASE TO USER01 GO