Я устанавливаю продукт, которому нужна база данных - он может использовать любую базу данных, если для него доступен коннектор 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;
До этого работает.
Однако неясно, как имя пользователя @ '%' и имя пользователя @ 'localhost переводятся в SQL Server.
Также после этого.
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.
.
Во всяком случае, в SQL Server Management Express я сделал следующее. Щелкните правой кнопкой мыши пользователя proddb внутри базы данных proddb -> Свойства. Предоставьте все возможные разрешения в окнах «Собственные схемы» и «Членство в ролях базы данных», за исключением двух разрешений на отказ в каждом из них. Это что-то похожее на «Предоставить все привилегии»?
SQL Server работает с этим иначе. Вы создаете АВТОРИЗОВАТЬСЯ с паролем для пользователя, который не зависит от его имени хоста или чего-то подобного.
Затем вы предоставляете доступ к базе данных, создавая ПОЛЬЗОВАТЕЛЬ в базе данных для определенного ЛОГИНА.
Затем вы ГРАНТ права ПОЛЬЗОВАТЕЛЯ.
Прочтите эти ссылки, и вы получите то, что вам нужно.
На SQL Server вы создаете имя входа / пользователя, смотрите это:
USE master
GO
CREATE LOGIN USER01
WITH PASSWORD = 'PASSword'
Затем вы используете GRANT, чтобы разрешить изменение любой базы данных:
USE master
GO
GRANT ALTER to any DATABASE TO USER01
GO