Проблема с папкой Apache и полномочиями файла

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

Можно использовать запрос ниже этого, возвращает файл данных и размеры файла журнала в MegaBytes и вставляет данные в другую tempdb таблицу. После одного месяца или года Вы сможете проверить рост путем анализа вывода от той таблицы и даже создать график.

CREATE TABLE tempdb..DB_size_growth
  (dbname       NVARCHAR(256), 
   mb_data_file     NUMERIC(12,2), 
   data_file_nr     INT          , 
   mb_log_file      NUMERIC(12,2), 
   log_file_nr  INT)


DECLARE @dbname     AS NVARCHAR(3000) 
DECLARE @exec   AS NVARCHAR(3999) 

DECLARE DB_NAME CURSOR FOR
SELECT name FROM master.dbo.sysdatabases where has_dbaccess(name) = 1
OPEN DB_NAME
FETCH NEXT FROM DB_NAME INTO @dbname

TRUNCATE TABLE tempdb..DB_size_growth

WHILE @@FETCH_STATUS = 0
BEGIN 

SELECT @exec =  'INSERT INTO tempdb..DB_size_growth (dbname, mb_data_file, data_file_nr, mb_log_file, log_file_nr)
SELECT b.name AS dbname
,(SELECT convert(numeric(12,3),convert(numeric(12,2),((sum(a1.size))*8))/1024)
from ' + QUOTENAME(@dbname, '[') + '.dbo.sysfiles as a1 where a1.groupid <> 0 ) as mb_data_file
,(SELECT count(a1.size) from ' + QUOTENAME(@dbname, '[') + '.dbo.sysfiles as a1 where a1.groupid <> 0 ) as data_file_nr
,(SELECT convert(numeric(12,3),convert(numeric(12,2),((sum(a.size))*8))/1024)  
from ' + QUOTENAME(@dbname, '[') + '.dbo.sysfiles as a where a.groupid = 0 ) as mb_log_file
,(SELECT count(a.size) from ' + QUOTENAME(@dbname, '[') + '.dbo.sysfiles as a where a.groupid = 0 ) as log_file_nr
FROM  master.dbo.sysdatabases as b WHERE name = '''+ @dbname +'''
group by b.name'
EXEC (@exec)


FETCH NEXT FROM DB_NAME INTO @dbname
END

CLOSE DB_NAME
DEALLOCATE DB_NAME

select * from tempdb..DB_size_growth
0
задан 6 February 2013 в 18:27
1 ответ

Когда вы открываете файл через веб-браузер, вы не используете пользователя, которого использовали для входа в свой домен.
Вместо этого apache использует локального пользователя (на веб-сервере) для доступа к этим файлам.

Теперь есть 2 способа защитить файлы от нежелательного доступа.

  • Вы можете случайно использовать apache для доступа к файлам. (это немного больше работы, но, безусловно, более разумный способ защитить отдельные файлы от чтения всеми в Windows). Windows apache для другого пользователя
  • Файлы .htaccess используются для дополнительной аутентификации при доступе к папкам или файлам. (это не имеет ничего общего с аутентификацией вашего домена) .htaccess пароль
0
ответ дан 5 December 2019 в 15:38

Теги

Похожие вопросы