×
Техническая документация: Хостинг

Microsoft SQL Server: работа с базами данных

Наши пользователи могут использовать базы данных Microsoft SQL Server 2012 на своих виртуальных площадках в рамках, предусмотренных соответствующими тарифами.

В стоимость тарифных планов виртуального хостинга, где поддерживаются услуги Microsoft SQL Server, входит определенное число баз данных Microsoft SQL Server и один пользователь Microsoft SQL Server. Сверх этого базы создаются за дополнительную плату по действующему прейскуранту.

Параметры и способы соединения с Microsoft SQL Server

  • Имя хоста (сервера), на котором размещена база данных Microsoft SQL Server: uXXXXX.mssql.masterhost.ru;
  • Порт: 1433;
  • Логин: соответствует названию виртуальной площадки — uXXXXX;
  • Пароль: указан в письме, которое пользователь получает при регистрации;
  • Имя базы данных: соответствует названию виртуальной площадки — uXXXXX;
  • Подключение нужно осуществлять по протоколу TCP/IP.

Подключение к SQL-серверу через «Microsoft SQL Server Management Studio Express»

Чтобы получить доступ к базе данных Microsoft SQL Server, возможно использовать Microsoft SQL Server Management Studio Express.

Подключение к Microsoft SQL Server 2012

В свойствах подключения («Options», закладка «Connection Properties») выберите в качестве сетевого протокола («Network Protocol») TCP/IP.

Подключение к Microsoft SQL Server 2012: свойства соединения

Создание новой базы данных

Новую базу данных вы можете создать через раздел Древо услуг, в личном кабинете. Выберите нужную «виртуальную площадку», затем в строке «MS SQL — База данных» и нажмите кнопку «Добавить».

Использовать Microsoft SQL Server Management Studio для создания новых баз данных нельзя.

Создание нового логина

Создать новый логин, для базы данных Microsoft SQL вы можете через раздел Древо услуг, в личном кабинете. Выберите нужную «виртуальную площадку», затем в строке «MS SQL — Пользователь» и нажмите кнопку «Добавить».

Использовать Microsoft SQL Server Management Studio для создания новых логинов нельзя. Так же ознакомьтесь с вопросом Можно ли на разные базы данных давать разные пароли доступа?

Увеличение размера базы данных

Увеличить размер базы данных можно самостоятельно, через раздел Древо услуг, в личном кабинете.

Выберите нужную «виртуальную площадку», затем напротив интересующей базы данных, для услуги «MS SQL — База данных» нажмите кнопку «Изменить» и в выпадающем списке выберите необходимый вам объем базы данных.

Предварительно рекомендуется произвести операцию сжатия базы данных согласно инструкции.

Уменьшение физического размера файлов баз данных и лога транзакций MS SQL Server.

  1. Из графического интерфейса Microsoft SQL Server Management Studio:

    • В обозревателе объектов подключитесь к экземпляру SQL Server 2012 Database Engine и разверните его.
    • Разверните узел «Базы данных», затем правой кнопкой мыши щелкните базу данных, которую нужно сжать.
    • В меню «Задачи» выберите «Сжать» и щелкните «База данных». Или установите флажок «Реорганизовать файлы перед освобождением неиспользуемого места».

      Если он установлен, необходимо указать значение параметра «Максимально доступное свободное место в файлах после сжатия».

  2. Стандартным t-sql запросом вида:

    DBCC SHRINKFILE (N'uXXXXXX.Log' , 0, TRUNCATEONLY)
    DBCC SHRINKDATABASE (N'uXXXXXX')
    где uXXXXX — имя вашей базы данных.

Изменение кодировки сравнения (collation)

По умолчанию кодировка collation выставлена как Cyrillic_General_CI_AS, изменить кодировку для сравнений можно следующим SQL-запросом:

ALTER DATABASE [uXXXXX] COLLATE SQL_Latin1_General_CP1251_CS_AS
GO

где uXXXXX — имя БД, где требуется данная операция.

Список доступных кодировок можно узнать так:

SELECT * FROM ::fn_helpcollations()

Можно ли использовать MSSQL Server Enterprise Manager для работы со своей базой данных Microsoft SQL Server 2012?

Microsoft SQL Server Enterprise Manager не предназначен для работы с базами данных Microsoft SQL Server 2012. Для управления своей БД можно использовать SQL Server Management Studio, или её бесплатный вариант — Microsoft SQL Server 2012 Management Studio Express.

Как дать права на доступ к базе определенному логину

Для SQL — дополнительный SQL логин, но настраивать права нужно самому: Заводим ещё один SQL логин — uXXX_Ann

Для начала используем нашу базу:

USE [uXXXX]
GO

Создаём пользователя для определённого «логина»:

CREATE USER [InetUser] FOR LOGIN [uXXX_Ann]
GO

Наделяем его правами (например только чтение таблиц):

EXEC sp_addrolemember N'db_datareader', N'InetUser'
GO

Или можем дать пользователю только конкретные права, на конкретные таблицы. Например, давайте дадим пользователю InetUser права на SELECT, INSERT, UPDATE для таблицы test, следующим SQL-запросом:

USE [uXXXXXX]
GO
GRANT SELECT ON [dbo].[test] TO [InetUser]
GO
GRANT INSERT ON [dbo].[test] TO [InetUser]
GO
GRANT UPDATE ON [dbo].[test] TO [InetUser]
GO

При всем при этом, при осуществлении доступа через SQL Management Studio, под дополнительным логином не являющимся владельцем базы, не будет видно базу данных в списке доступных баз, но будет возможность выполнять разрешенные SQL-запросы.

Как получить раскладку по размеру таблиц в базе

Это можно сделать следующим SQL-запросом:

SET NOCOUNT ON

DBCC UPDATEUSAGE(0)

-- DB size.
EXEC sp_spaceused

-- Table row counts and sizes.
CREATE TABLE #t
(
    [name] NVARCHAR(128),
    [rows] CHAR(11),
    reserved VARCHAR(18),
    data VARCHAR(18),
    index_size VARCHAR(18),
    unused VARCHAR(18)
)

INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?'''

SELECT *
FROM   #t

-- # of rows.
SELECT SUM(CAST([rows] AS int)) AS [rows]
FROM   #t

DROP TABLE #t