Mikro ERP Kullanıcı Modül Yetkilerini SQL ile Listeleme

Mikro ERP V16 kullanıcılarının hangi modüllere erişebildiğini VERI_TABANI_PARAMETRELERI tablosundaki binary yetki kayıtları üzerinden SQL ile raporlama

Mikro ERP Kullanıcı Modül Yetkilerini SQL ile Listeleme

Posted on Eylül 02, 2026 by Şaban ÇİÇEK
Mikro ERP Kullanıcı Modül Yetkilerini SQL ile Listeleme
Mikro ERP Kullanıcı Modül Yetkilerini SQL ile Listeleme

Mikro ERP Kullanıcı Modül Yetkilerini SQL ile Listeleme

Mikro ERP V16 SQL Server Yetki Raporlama

Mikro ERP kullanıcı yetkilendirme ekranında bir kullanıcının hangi ana modüllere erişebildiği görülebilir. Ancak bütün kullanıcıların modül yetkilerini toplu şekilde incelemek veya denetim amacıyla raporlamak gerektiğinde standart ekranlar yeterli olmayabilir.

Bu çalışmada Mikro ERP V16 üzerindeki kullanıcı-modül yetkilerinin SQL Profiler yardımıyla nasıl tespit edildiğini ve tüm kullanıcıların yetkilerinin tek bir SQL sorgusuyla nasıl raporlanabileceğini anlatacağım.

Önemli: Aşağıdaki sorgular yalnızca raporlama amacıyla hazırlanmıştır. Mikro ERP'nin binary yetki alanlarına doğrudan UPDATE uygulanması önerilmez. Yetki değişiklikleri Mikro ERP kullanıcı arayüzünden yapılmalıdır.

Yetkiler hangi tabloda tutuluyor?

Profiler incelemesinde kullanıcı yetkilerinin şirket veritabanındaki aşağıdaki tabloda tutulduğu görüldü:

dbo.VERI_TABANI_PARAMETRELERI

Yetki bilgileri bu tabloda ayrı sütunlar halinde değil, Param_buf adlı varbinary alan içerisinde saklanmaktadır. Kullanıcı ile yetki kaydı arasındaki ilişki ise şu formülle kurulmaktadır:

Param_id = 2000 + User_no

Örneğin User_no = 23 olan bir kullanıcının modül yetki kaydı Param_id = 2023 değerinde aranır. Ana modül yetkileri Param_item = 0 satırındaki binary veri içinde bulunur.

Modül-byte eşleşmesinin bulunması

Bir kullanıcıda yalnızca tek bir modül açılıp kapatılarak işlem öncesi ve sonrası Param_buf değerleri karşılaştırıldı. Yapılan testlerde modüllerin ekrandaki sıra numarasına paralel ve kesintisiz şekilde saklandığı görüldü:

ByteNo = 4222 + Modül Sıra Numarası

Yetki değerleri ise şu şekilde yorumlanmaktadır:

Binary değerAnlamı
0x00Yetki kapalı
0x01Yetki açık

Örnek olarak Personel Yönetimi menüsü 3. sıradadır ve 4225. byte üzerinde tutulur. Dış Ticaret Yönetimi ise 4. sırada olduğu için 4226. byte değerine karşılık gelir.

Tüm kullanıcıların modül yetkilerini listeleyen SQL sorgusu

Aşağıdaki sorguda @UserNo değeri NULL bırakılırsa bütün kullanıcılar listelenir. Belirli bir kullanıcı incelenecekse bu değişkene Mikro kullanıcı numarası yazılabilir.

USE [MikroDB_V16_2026xxx];
GO

DECLARE @UserNo INT = NULL;
-- Örnek: Yalnızca 23 numaralı kullanıcı için:
-- SET @UserNo = 23;

;WITH MenuHaritasi AS
(
    SELECT *
    FROM (VALUES
        (1,4223,N'Ana Modül'),
        (2,4224,N'Hızlı Satış Ekranı'),
        (3,4225,N'Personel Yönetimi'),
        (4,4226,N'Dış Ticaret Yönetimi'),
        (5,4227,N'Temel Ürün Yönetimi'),
        (6,4228,N'Genel ve Sabit Kıymet Muhasebe Yönetimi'),
        (7,4229,N'Karar Destek ve Analiz'),
        (8,4230,N'İlişkiler Yönetimi'),
        (9,4231,N'İleri Seviye Muhasebe Yönetimi'),
        (10,4232,N'İleri Seviye Üretim Yönetimi'),
        (11,4233,N'İK Yönetimi'),
        (12,4234,N'İş Zekâsı'),
        (13,4235,N'Akaryakıt İstasyonu Yönetimi'),
        (14,4236,N'Tamir/Teknik Servis Yönetimi'),
        (15,4237,N'Perakende Yönetimi'),
        (16,4238,N'Perakende Satış Noktası Yönetimi'),
        (17,4239,N'Promosyon Yönetimi'),
        (18,4240,N'AVM-Rezidans Yönetimi'),
        (19,4241,N'Kiralama Yönetimi'),
        (20,4242,N'E-Fatura Yönetimi'),
        (21,4243,N'E-Arşiv Yönetimi'),
        (22,4244,N'E-Defter Yönetimi'),
        (23,4245,N'Defter Beyan'),
        (24,4246,N'E-Mutabakat Yönetimi'),
        (25,4247,N'E-Bordro Yönetimi'),
        (26,4248,N'E-İhracat Faturası Yönetimi'),
        (27,4249,N'E-İrsaliye Yönetimi'),
        (28,4250,N'E-Müstahsil Makbuzu Yönetimi'),
        (29,4251,N'E-Serbest Meslek Makbuzu Yönetimi'),
        (30,4252,N'Otel-Restoran'),
        (31,4253,N'Otomotiv'),
        (32,4254,N'Kargo'),
        (33,4255,N'Gıda'),
        (34,4256,N'Nielsen'),
        (35,4257,N'E-Ticaret'),
        (36,4258,N'Banka'),
        (37,4259,N'VKN Sorgulama'),
        (38,4260,N'Telco'),
        (39,4261,N'E-Defter Aktarım'),
        (40,4262,N'Çoklu Dil Desteği'),
        (41,4263,N'Evrim Aktarım'),
        (42,4264,N'Maestro Aktarım'),
        (43,4265,N'Ajur Aktarım'),
        (44,4266,N'Hazır Beton Aktarım'),
        (45,4267,N'MikroDrive'),
        (46,4268,N'Veribis CRM'),
        (47,4269,N'E-Z Raporu Yönetimi'),
        (49,4271,N'Masraf Uygulaması'),
        (50,4272,N'Online Hesabım'),
        (51,4273,N'Mobil'),
        (52,4274,N'Hızlı Satış Promosyon'),
        (53,4275,N'E-Dönüşüm'),
        (54,4276,N'MikroDrive Promosyon'),
        (55,4277,N'Online Hesabım Promosyon'),
        (56,4278,N'E-Ticaret/Pazaryeri Entegrasyonu'),
        (57,4279,N'Hızlı Satış E-Arşiv Kasa'),
        (58,4280,N'E-Ticaret/Pazaryeri Pro'),
        (59,4281,N'E-Ticaret/Pazaryeri Promosyon'),
        (60,4282,N'E-Ticaret/Pazaryeri Pro Promosyon'),
        (61,4283,N'Getir Çarşı'),
        (62,4284,N'E-Arşiv (İnteraktif) Fatura'),
        (63,4285,N'İrgat'),
        (64,4286,N'Mikro API'),
        (65,4287,N'Nitrogen Depo Yönetimi'),
        (67,4289,N'Fastsell Hızlı Satış'),
        (68,4290,N'Fastsell Restoran Çözümü'),
        (69,4291,N'Porkod Süreç Yönetimi Standart'),
        (70,4292,N'Porkod Süreç Yönetimi Profesyonel'),
        (72,4294,N'Porkod Patron Ekranı Standart'),
        (73,4295,N'Porkod Patron Ekranı Profesyonel'),
        (74,4296,N'E-Defter Bulutta İmzalama ve Yetkilendirme')
    ) AS M(SiraNo, ByteNo, MenuAdi)
),
KullaniciYetkileri AS
(
    SELECT
        K.User_no,
        K.User_name,
        K.User_LongName,
        P.Param_id,
        P.Param_recno,
        P.Param_buf
    FROM [MikroDB_V16].dbo.KULLANICILAR AS K WITH (NOLOCK)
    LEFT JOIN dbo.VERI_TABANI_PARAMETRELERI AS P WITH (NOLOCK)
        ON P.Param_id = K.User_no + 2000
       AND P.Param_item = 0
    WHERE @UserNo IS NULL OR K.User_no = @UserNo
)
SELECT
    KY.User_no       AS KullaniciNo,
    KY.User_name     AS KullaniciAdi,
    KY.User_LongName AS AdSoyad,
    MH.SiraNo,
    MH.MenuAdi,
    MH.ByteNo,
    CASE
        WHEN KY.Param_buf IS NULL THEN NULL
        ELSE CONVERT(INT, SUBSTRING(KY.Param_buf, MH.ByteNo, 1))
    END AS YetkiDegeri,
    CASE
        WHEN KY.Param_buf IS NULL
            THEN N'YETKİ KAYDI YOK'
        WHEN SUBSTRING(KY.Param_buf, MH.ByteNo, 1) = 0x01
            THEN N'YETKİ AÇIK'
        ELSE N'YETKİ KAPALI'
    END AS YetkiDurumu
FROM KullaniciYetkileri AS KY
CROSS JOIN MenuHaritasi AS MH
ORDER BY KY.User_LongName, KY.User_no, MH.SiraNo;

Yalnızca açık yetkileri listeleme

Sadece açık modülleri görmek için ana sorgunun son bölümünde ORDER BY satırından önce aşağıdaki filtre kullanılabilir:

WHERE SUBSTRING(KY.Param_buf, MH.ByteNo, 1) = 0x01

Yalnızca kapalı yetkileri listeleme

WHERE KY.Param_buf IS NOT NULL
  AND SUBSTRING(KY.Param_buf, MH.ByteNo, 1) = 0x00

Dikkat edilmesi gerekenler

  • MikroDB_V16_2026XXXX yerine kendi şirket veritabanı adınızı yazın.
  • MikroDB_V16, Mikro kullanıcılarının bulunduğu ana veritabanıdır; kurulumunuza göre adı farklı olabilir.
  • Boş görünen 48, 66 ve 71 numaralı modül satırları haritaya dahil edilmemiştir.
  • Byte konumları Mikro ERP V16 üzerinde yapılan testlerden elde edilmiştir. Farklı sürümlerde önce test kullanıcısı ile doğrulama yapılmalıdır.
  • Sorgu yetkileri değiştirmez; yalnızca mevcut değerleri raporlar.

Sonuç

Bu yöntemle Mikro ERP kullanıcılarının ana modül yetkileri tek tek kullanıcı ekranlarını açmadan merkezi olarak denetlenebilir. Özellikle kullanıcı yetki kontrolleri, görev değişiklikleri, işten ayrılma süreçleri ve periyodik bilgi güvenliği denetimleri sırasında oldukça kullanışlı bir rapor elde edilir.

Binary yetki yapısının doğrudan değiştirilmesi yerine bu sorgunun yalnızca kontrol ve raporlama amacıyla kullanılması; değişikliklerin ise Mikro ERP kullanıcı yetkilendirme ekranından yapılması en güvenli yaklaşımdır.

80 görüntülenme • 0 Yorum • Son Güncelleme: Eylül 02, 2026
Yorumlar 0
Yorum Yap

Henüz yorum yok. İlk yorumu siz yapın!