مدل لیست کنترل دسترسی   و مدل قابلیت دو مدل قدیمی برای کنترل دسترسی در زمان اجرا هستند. در مدل لیست کنترل دسترسی مجوزها برای اشیاء تعیین می‌گردند. در مقابل در مدل قابلیت مجوزها برای موضوعاتی (کاربرانی) که قصد دسترسی به اشیاء را دارند تعیین می‌گردند.
نماد Rule(sub, act, obj) را برای توصیف قاعده کنترل دسترسی <sub, act, obj> استفاده می‌کنند. فرض کنید ACL(objk) لیست کنترل دسترسی برای شئ kام و Policy خط‌مشئ کنترل دسترسی شامل m شئ  را نشان می‌دهد. ACL(objk) و Policy به صورت زیر بیان می‌شوند:
ACL(objk):= {Rule(sub1, act1, objk), … , Rule(subn, actn, objk)}
Policy := {ACL(obj1), … , ACL(objm)}
کنترل دسترسی برای موضوع (کاربر) kام subk در مدل قابلیت به‌صورت Cap(subk) نشان داده می‌شود. Cap(subk) و Policy با s موضوع به‌صورت زیر بیان می‌شوند:
Cap(subk) := {Rule(subk, act1, obj1), … , Rule(subk, actn, objn)}
Policy := {Cap(sub1), … , Cap(subs)}
مدل‌های قابلیت و لیست کنترل دسترسی مزایا و معایبی دارند. در لیست کنترل دسترسی، بررسی سریع مجوزها برای یک شئ امکان پذیر است ولی برای به دست آوردن همه مجوزهای یک کاربر، باید تمام لیست‌های کنترل دسترسی بررسی شود. در روش قابلیت، تعیین سریع امتیازهای کاربر امکان پذیر است ولی به دست آوردن همه دسترسی‌های ممکن به یک شئ نیاز به بررسی کل قابلیت‌های موجود دارد. همچنین این روش‌ها در کارایی پس‌گرفتن مجوزها بر اساس حذف کاربر یا شئ تاثیر می‌گذارد.
این دو مدل را می‌توان به سادگی جهت بانک‌های XML استفاده کرد. به این منظور کافیست که هر سند و یا هر المان یا زیر المان یک سند را یک شئ در نظر گرفته و بدین ترتیب خط‌مشئ مربوطه را ایجاد و کنترل دسترسی را اعمال کرد