this sample will show you how you can create custom level and it help you specially when you have form and has one detail and multi details so there is no need to give permission to all the tables in the same screens so by example you can create permission like the menu item :
/****** Object: Table [dbo].[GroupParent] Script Date: 7/4/2025 11:20:33 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupParent](
[ID] [int] NOT NULL,
[Name] [nvarchar](200) NULL,
CONSTRAINT [PK_GroupParent] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[GroupMenuTable] Script Date: 7/4/2025 11:20:41 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupMenuTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[GroupMenu_ID] [int] NULL,
[GMTableName] [nvarchar](200) NULL,
CONSTRAINT [PK_GMenuTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[GroupMenu_UL](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserLevelID] [int] NULL,
[GroupParent_ID] [int] NULL,
[GroupMenu_ID] [int] NULL,
[Permission] [int] NULL,
[canAdd] [bit] NULL,
[canDelete] [bit] NULL,
[canEdit] [bit] NULL,
[canList] [bit] NULL,
[canView] [bit] NULL,
[canSearch] [bit] NULL,
CONSTRAINT [PK_GroupMenu_UL] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
create VIEW [dbo].[vUserLevel] AS SELECT
dbo.UserLevels.UserLevelID, dbo.UserLevels.UserLevelName FROM dbo.UserLevels
where UserLevelID<>-1
GO
CREATE VIEW [dbo].[vUserGroupstpl]
AS
SELECT dbo.UserGroupstpl.ID, dbo.UserGroupstpl.Name, dbo.ScreenType.Name AS Name1, dbo.UserGroupstpl.Section
FROM dbo.UserGroupstpl INNER JOIN
dbo.ScreenType ON dbo.UserGroupstpl.TypeID = dbo.ScreenType.ID
GO
Create procedure [dbo].[AfterUpdateUserLevels]
(@P int)
AS
begin
declare @TID int
select @TID=@P
delete from UserLevelPermissions where UserLevelID =@TID
insert into UserLevelPermissions
select @TID , concat('{06418C4F-66A7-4CF6-9B81-22B00EBEB26D}',b.GMTableName),canAdd*1 + canDelete*2 + canEdit*4 + canList*8 + canView*32 + canSearch*64 from GroupMenu_UL a
inner join GroupMenuTable b on a.Groupmenu_ID=b.GroupMenu_ID
where a.UserLevelID=@TID
end